Tôi không nghĩ rằng tôi có thể sử dụng mệnh đề ORDER BY
bên trong hàm GROUP_CONCAT
.Sử dụng mệnh đề ORDER BY bên trong hàm GROUP_CONCAT trong SQLite
Có ai biết một cách khéo léo để thực hiện hành vi này trong SQLite
không?
Tôi đã thấy số này question trước đây. Nhưng tôi có một truy vấn phức tạp.
tuyên bố của tôi trông như thế này:
SELECT
c.col1, c.col3, m.col3, m.col4,
count(m.col1), count(re.col2) AS cnt,
GROUP_CONCAT(p.col1 ORDER BY p.col1) AS "Group1",
GROUP_CONCAT(p.col2 ORDER BY p.col1) AS "Group2",
GROUP_CONCAT(CASE WHEN con.col3 is null THEN p.col1 ELSE con.col3 END),
con.col4, con.col5, p.col3
FROM t1 re
INNER JOIN t2 c ON (re.col1 = c.col1)
INNER JOIN t3 p ON (re.col2 = p.col1)
LEFT JOIN t4 con ON (con.col1 = p.col2)
INNER JOIN t5 m ON (m.col1 = c.col5)
GROUP BY re.col1
Group1
và Group2
đến từ cùng một bảng nhưng các cột khác nhau: Tôi muốn giữ gìn trật tự của Group1
với Group2
:
table t3
+------+------+
| col1 | col2 |
+------+------+
| 1 | A |
| 2 | B |
| 3 | C |
| 4 | D |
| 5 | E |
+------+------+
nên nếu Group1
xuất hiện như thế này 2,1,3
Group2
sẽ xuất hiện như thế này B,A,C
Bạn viết trong câu trả lời của bạn rằng các truy vấn những gì bạn cần. Vậy thì câu hỏi là gì? – newtover
@newtover cú pháp mà anh ta sử dụng được hỗ trợ bởi mysql chứ không phải sqlite. – chacham15