Thông báo lỗi giải thích sự cố một cách hoàn hảo.
Trong ví dụ đầu tiên, ORDER BY
item - CASE WHEN ... END
- không xuất hiện trong SELECT
danh sách.
Trong ví dụ thứ hai, ORDER BY
item - a.QuestionID
- không xuất hiện trong SELECT
danh sách.
Để sửa ví dụ đầu tiên, bạn cần phải làm như sau:
SELECT DISTINCT a.QuestionID, a.QuestionName, b.AnswerID, b.AnswerName,
CASE WHEN a.QuestionName = 'A' THEN 0
WHEN a.QuestionName = 'B' THEN 1
ELSE a.QuestionID
END
FROM @TempExportList AS a
JOIN tblAnswers AS b
ON a.QuestionID = b.QuestionID
WHERE a.PaperID = @PaperID
ORDER BY CASE WHEN a.QuestionName = 'A' THEN 0
WHEN a.QuestionName = 'B' THEN 1
ELSE a.QuestionID
END