我想選擇state
或workstate
列。首選使用state
值。如果它爲空或空,那麼我想使用workstate
值。如果爲空或空,請選擇不同的列
我有以下SQL:
SELECT
COUNT(id) AS participants,
COALESCE(NULLIF(state,''), workState, (select state from dbo.training where id =(SELECT top(1) trainingId
FROM dbo.Xref_Participant_Training
WHERE (participantId = dbo.Participant.id)))) as state
FROM dbo.Participant
WHERE EXISTS
(SELECT 1
FROM dbo.Xref_Participant_Training
WHERE (participantId = dbo.Participant.id) AND (dbo.Participant.country = 'United States'))
GROUP by COALESCE(NULLIF(state,''), workState, (select state from dbo.training where id =(SELECT top(1) trainingId
FROM dbo.Xref_Participant_Training
WHERE (participantId = dbo.Participant.id))))
我收到以下錯誤:
Msg 144, Level 15, State 1, Line 15
Cannot use an aggregate or a subquery in an expression used for the group by list of a GROUP BY clause.
包括分組中的工作狀態。 –
在「GROUP BY」中指定相同的'COALESCE'表達式。 –
您可能希望將合併的最後一部分更改爲外部應用,而不是子查詢,以便結果可以包含在組中。 – ZLK