這裏是我的SQL小提琴:http://sqlfiddle.com/#!4/75ab7/2Oracle SQL中,如何選擇組中的第一行?
基本上,我創建了一個表,並插入一些數據吧。
CREATE TABLE subject (
id INT NOT NULL,
seq_num INT NOT NULL,
name VARCHAR(30) NOT NULL
);
INSERT INTO subject
(id, seq_num, name)
VALUES
(1, 1, 'sub_1_1');
INSERT INTO subject
(id, seq_num, name)
VALUES
(2, 1, 'sub_1_2');
INSERT INTO subject
(id, seq_num, name)
VALUES
(3, 2,'sub_2_1');
INSERT INTO subject
(id, seq_num, name)
VALUES
(4, 2, 'sub_2_2');
INSERT INTO subject
(id, seq_num, name)
VALUES
(5, 2, 'sub_2_3');
INSERT INTO subject
(id, seq_num, name)
VALUES
(6, 3, 'sub_3_1');
INSERT INTO subject
(id, seq_num, name)
VALUES
(7, 3, 'sub_3_1');
我運行這個select語句:
select
LISTAGG(TRIM(id), ',') WITHIN GROUP (ORDER BY 1) AS IDS,
seq_num,
LISTAGG(TRIM(name), ',') WITHIN GROUP (ORDER BY 1) AS NAMES
from
subject
group by
seq_num
order by
seq_num asc
select語句的結果:
| ids | seq_num | names |
|-------|---------|-------------------------|
| 1,2 | 1 | sub_1_1,sub_1_2 |
| 3,4,5 | 2 | sub_2_1,sub_2_2,sub_2_3 |
| 6,7 | 3 | sub_3_1,sub_3_1 |
我可以生成這樣的事情?
| ids | seq_num | names |
|-----|---------|---------|
| 1 | 1 | sub_1_1 |
| 3 | 2 | sub_2_1 |
| 6 | 3 | sub_3_1 |
這只是挑選組的第一行。
你能解釋一下在這裏使用Trim()的意義嗎? –
@Harshil。 。 。這是OP的一個問題,應該問這個問題。 'trim()'用在問題的代碼中。 –
好的..謝謝你的快速回復。 –