Oracle SQL、複数の列の連結+テキストの追加


102

だから私は基本的にこれを表示したい(1列の行全体):

【タイプコラム】【アイシングコラム】と【フルーツコラム】のケーキが好きです。

結果は次のようになります。

Cake_Column
----------------

I like chocolate cake with whipped_cream and a cherry.

I like strawberry cake with vanilla_cream and a lemon_slice.

etc.

etc.

([column] "some text" [column]) "new_column_name"を実行するある種のTO_CHARステートメントが必要です。

私は何を知っているはずですか?

回答:


144

Oracleで文字列を連結するには、2つのオプションがあります。

CONCATの例:

CONCAT(
  CONCAT(
    CONCAT(
      CONCAT(
        CONCAT('I like ', t.type_desc_column), 
        ' cake with '), 
      t.icing_desc_column),
    ' and a '),
  t.fruit_desc_column)

使用||例:

'I like ' || t.type_desc_column || ' cake with ' || t.icing_desc_column || ' and a ' || t.fruit_desc_column

これは本当に遅いです(実行するのではなく、入力するのではなく)。もっと良い方法はありますか?
Patrick Szalapski、2015年

1
これは、非常に古いブランドのDBMSに関しては醜いです。どうしてオラクルは多引数バージョンの連結をサポートしないのですか?しかし、シャンカールのおかげで、|| オペレーター。
Scott Chu


36
select 'i like' || type_column || ' with' ect....

1
この回答をありがとうございました。'||'が好き SQLクエリの保守が容易になるためです。
Jason TEPOORTEN 2012年

25

以下のクエリは私のために機能します@Oracle 10G ----

select PHONE, CONTACT, (ADDR1 ||  '-' || ADDR2 || '-' || ADDR3) as Address
from CUSTOMER_DETAILS
where Code='341'; 

O / P-

1111 abc@gmail.com 4th street-capetown-sa


10

このOracle/PLSQL CONCAT関数を使用すると、2つの文字列を連結できます。

CONCAT( string1, string2 )

string1

連結する最初の文字列。

string2

連結する2番目の文字列。

例えば

SELECT 'I like ' || type_column_name || ' cake with ' || 
icing_column_name || ' and a ' fruit_column_name || '.' 
AS Cake FROM table;

8

これを試して:

SELECT 'I like ' || type_column_name || ' cake with ' || 
icing_column_name || ' and a ' fruit_column_name || '.' 
AS Cake_Column FROM your_table_name;

すべてのデータを「Cake_Column」という名前の単一の列エントリとして連結する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.