Oracle SQL, 여러 열 연결 + 텍스트 추가


102

그래서 기본적으로 이것을 표시하고 싶습니다 (한 열의 전체 행).

나는 [아이싱 칼럼]과 [과일 칼럼]이있는 [타입 칼럼] 케이크를 좋아한다.

결과는 다음과 같아야합니다.

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 문이 필요합니다.

내가 무엇을 알아야합니까?

답변:


145

Oracle에서 문자열을 연결하는 두 가지 옵션이 있습니다.

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

1
이것은 아주 오래된 브랜드 DBMS와 관련하여 매우 추합니다. 오라클이 다중 인수 버전 Concat을 지원하지 않는 이유는 무엇입니까? 하지만 Shankar 덕분에 || 운영자.
Scott Chu


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

1
이 답변에 감사드립니다. 나는 '||'를 좋아한다 SQL 쿼리를 쉽게 유지 관리 할 수 ​​있기 때문입니다.
Jason TEPOORTEN

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함수는 두 문자열을 함께 연결할 수 있습니다.

CONCAT( string1, string2 )

string1

연결할 첫 번째 문자열입니다.

string2

연결할 두 번째 문자열입니다.

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.