Case 语句的 then 中是否可以有多个表达式
我想要的会是这样的
Select EmployeeId,
Case
When Dateofjoin > '1-1-2000' Then Select Column1 , Select Column2, Select Column3
ELSE Select Column5 , Select Column6, Select Column6
END CASE
from EmployeeTABLE
CASE 表达式 返回标量值,它们不能返回多列。
我建议使用 APPLY...
SELECT
e.EmployeeId,
c.*
FROM
EmployeeTABLE AS e
CROSS APPLY
(
SELECT
e.column1, e.column2, e.column3
WHERE
e.Dateofjoin > '2000-01-01'
UNION ALL
SELECT
e.column4, e.column5, e.column6
WHERE
e.Dateofjoin <= '2000-01-01'
)
AS c
来自员工表
不可以,您不能在 CASE 的 THEN 部分中直接包含多个表达式。但是您可以通过将表达式分成多个 CASE 语句或使用子查询来实现类似的效果。