select *
FROM ##RawTrans
ORDER BY GroupBy ASC,
CASE WHEN @RepType = 'Emp' THEN
CASE WHEN @OrderBy = 0 THEN [Code] ELSE [Name] END, [Date], [Time]
CASE WHEN @RepType = 'ClockEmp' THEN
[Clock], CASE WHEN @OrderBy = 0 THEN [Code] ELSE [Name] END, [Date], [Time]
CASE WHEN @RepType = 'EmpClock' THEN
CASE WHEN @OrderBy = 0 THEN [Code] ELSE [Name] END, [Clock], [Date], [Time]
END
Run Code Online (Sandbox Code Playgroud)
有人可以帮我知道这段代码中的错误在哪里?
我在第7行收到错误
[',''附近的语法不正确]
GroupBy是在此代码之前声明的变量
一个case表达式返回一个值,你不能把它返回逗号分隔的字段名.
您必须case为每个值创建一个,例如:
ORDER BY
GroupBy ASC,
CASE WHEN @RepType = 'ClockEmp' THEN [Clock] ELSE '' end,
CASE WHEN @OrderBy = 0 THEN [Code] ELSE [Name] END,
CASE WHEN @RepType = 'EmpClock' THEN [Clock] ELSE '' end,
[Date],
[Time]
Run Code Online (Sandbox Code Playgroud)