程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle字段的轉字符串實際操作方案

Oracle字段的轉字符串實際操作方案

編輯:Oracle數據庫基礎

以下的文章是通過Oracle字段轉字符串以及其多行記錄合並/連接/聚合字符串的幾種常用方法的具體操作,如果你對其相關的實際操作有興趣的話,你就可以對以下的文章點擊觀看了。

怎麼合並多行記錄的字符串,一直是Oracle新手喜歡問的SQL問題之一,關於這個問題的帖子我看過不下30個了,現在就對這個問題,進行一個總結。

什麼是合並多行字符串(連接字符串)呢,例如:

  1. SQL> desc test;   
  2. Name Type Nullable Default Comments   
  3. COUNTRY VARCHAR2(20) Y   
  4. CITY VARCHAR2(20) Y  
  5. SQL> select * from test;  
  6. COUNTRY CITY   

中國 台北

中國 香港

中國 上海

日本 東京

日本 大阪

要求得到如下結果集:

中國 台北,香港,上海

日本 東京,大阪

實際就是對字符實現一個聚合功能,我很奇怪為什麼Oracle沒有提供官方的聚合函數來實現它呢:)

下面就對幾種經常提及的解決方案進行分析

1.被集合Oracle字段范圍小且固定型

這種方法的原理在於你已經知道CITY字段的值有幾種,且還不算太多,如果太多這個SQL就會相當的

長。看例子:

SQL> select t.country,

2 MAX(decode(t.city,'台北',t.city||',',NULL)) ||

3 MAX(decode(t.city,'香港',t.city||',',NULL))||

4 MAX(decode(t.city,'上海',t.city||',',NULL))||

5 MAX(decode(t.city,'東京',t.city||',',NULL))||

6 MAX(decode(t.city,'大阪',t.city||',',NULL))

7 from test t GROUP BY t.country

8 /

上述的相關內容就是對Oracle字段轉字符串以及多行記錄合並/連接/聚合字符串的幾種方法的部分描述,希望會給你帶來一些幫助在此方面。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved