Tôi mới sử dụng SQL.SQL: GROUP theo nhiều cột với câu lệnh CASE
Tôi muốn sử dụng GROUP BY
với tuyên bố CASE
, để nhóm các kết quả theo cách cụ thể nếu @myboolean
là đúng sự thật.
Tôi đã xem nhiều ví dụ về cách sử dụng GROUP BY
và CASE BY
với một trường đơn lẻ hoặc cách sử dụng GROUP BY
với nhiều trường không có tuyên bố CASE
.
Tôi không biết cách kết hợp cả hai. Khi tôi kèm theo GROUP BY
trường trong báo cáo kết quả CASE
, tôi nhận được một lỗi cú pháp:
Incorrect syntax near ','
Vì vậy, hoạt động này:
GROUP BY
/* This works with no enclosing CASE statement */
field1,
field2,
field3,
field4
này tạo ra một lỗi cú pháp:
GROUP BY
CASE WHEN (@myboolean=1)
THEN
field1, <-- ERROR HERE: Incorrect syntax near ','
field2,
field3,
field4
ELSE
field1
END
tôi đã xem xét các câu hỏi sau:
SQL: Group By with Case Statement for multiple fields: có vẻ là
GROUP BY
hoặc là dựa trênCASE
, thay vì nhóm theo nhiều. Không có dấu phẩy nào.Group by Multiple columns and case statement: có lẽ tôi là dày, nhưng tôi không thể nhìn thấy cách này bao gồm một tuyên bố trường hợp trong mệnh đề
GROUP BY
người khác khác nhau, ít liên quan
Tôi đang sử dụng Microsoft SQL Server Management Studio.
Xin lưu ý rằng tôi đang kế thừa một câu lệnh SQL rất phức tạp/dài, mà tôi muốn tránh thay đổi quá nhiều. Tôi không muốn chia truy vấn thành hai câu lệnh riêng biệt SELECT
.
một trường hợp chỉ có thể trở lại một cột/giá trị, không nhiều. – jarlh
@jarlh cảm ơn. Tôi nên làm gì thay vào đó? –
CASE không hoạt động như bạn mong đợi – mxix