SQL Server Case then 语句

问题描述 投票:0回答:2

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
sql sql-server-2008 sql-server-2012 ssms
2个回答
0
投票

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

来自员工表


-1
投票

不可以,您不能在 CASE 的 THEN 部分中直接包含多个表达式。但是您可以通过将表达式分成多个 CASE 语句或使用子查询来实现类似的效果。

© www.soinside.com 2019 - 2024. All rights reserved.