2010-12-16 36 views
1

我在Oracle中有一個查詢,它在Field1上執行一個組。此查詢返回2個行,但row1在field1上的計數爲2。我想要在row1上的單個單元格中顯示兩個Field1值。這可能嗎?Oracle中行的並行值

+0

Oracle沒有內置的類似concat的聚合函數。如果這些值不同,爲什麼你想讓它們在同一行? – kurosch 2010-12-16 22:54:57

回答

3

Tim Hall收集了Oracle中提供的不同string aggregation techniques。根據Oracle版本的不同,我通常更喜歡內置的LISTAGG分析函數(用於11.2)或早期版本的用戶定義的聚合函數。兩個

+1

我不喜歡收集10g自己。 – Dan 2010-12-16 23:45:27

0

計數很簡單,只是一個MIN(字段1)|| '' || MAX(字段1)

您可能要應付兩行具有相同的值是不同的:

CASE WHEN(field1)!= MAX(field1)THEN MIN(field1)||','|| MAX(field1)ELSE MIN(field1)END

0

編寫一個小的存儲過程有時候是最簡單的,因爲你可以控制格式與數字無關。其他答案可能會更好,但如果您熟悉PL/SQL,則速度更快。