是否可以使用SQL 2005在sql From子句中使用Case语句?例如,我正在尝试这样的事情:
SELECT Md5 FROM CASE WHEN @ClientType = 'Employee' THEN @Source = 'HR' WHEN @ClientType = 'Member' THEN @Source = 'Other' END CASE WHERE Current = 2;
yukondude.. 23
我不相信这是可能的.首先,查询优化器假定FROM子句中特定于表的事物列表.
我能想到的最简单的解决方法是两个表之间的UNION:
SELECT md5 FROM hr WHERE @clienttype = 'Employee' AND current = 2 UNION SELECT md5 FROM other WHERE @clienttype = 'Member' AND current = 2;
考虑到@clienttype谓词,只有一半的UNION可以为True.
我不相信这是可能的.首先,查询优化器假定FROM子句中特定于表的事物列表.
我能想到的最简单的解决方法是两个表之间的UNION:
SELECT md5 FROM hr WHERE @clienttype = 'Employee' AND current = 2 UNION SELECT md5 FROM other WHERE @clienttype = 'Member' AND current = 2;
考虑到@clienttype谓词,只有一半的UNION可以为True.
假设SQL Server:
您需要使用动态SQL.构建字符串,然后使用字符串调用sp_executesql.
编辑:更好的是,只需使用if语句来执行适当的语句并将值赋给变量.如果可能,您应该避免使用动态SQL.