有人能告诉我为什么我不能在SQL Management studio中运行这些代码吗?提前谢谢。
SELECT * FROM TabKontaktJednani
where
TabKontaktJednani.Typ IN (
CASE 'ERP'--(SELECT ALIAS FROM TabCisZam where LoginId = SUSER_NAME())
WHEN 'ERP'
THEN ('HeO','OST')
WHEN 'TO'
THEN ('SW','OST')
END)
不能运行该代码的原因是CASE
表达式只能返回一个标量值,而不能返回值列表。
CASE
表达式返回一个元组。这在SQL中是不允许的。但是由于MySQL支持布尔型数据类型,CASE
表达式可能会导致布尔型:
SELECT *
FROM tabkontaktjednani
WHERE
CASE (SELECT alias FROM tabciszam WHERE loginid = suser_name())
WHEN 'ERP' THEN typ IN ('HeO', 'OST')
WHEN 'TO' THEN typ IN ('SW', 'OST')
END;