我的情况很复杂.我想在"where子句"上写一个包含"case when"条件的sql查询.
就像那样:
SELECT *
FROM <table>
WHERE
<Column1> in
CASE <Column2>
WHEN 1 THEN ('OP', 'CL')
WHEN 0 THEN ('RE', 'ST')
END
Run Code Online (Sandbox Code Playgroud)
Column1必须为"in",而不是"=".因为Column1的条件有多个值.该查询返回"',''附近的语法不正确." 错误.
你能给我任何建议吗?(对不起,我的英语不好.)
编辑:我想我误解了.如果Column2为1,则条件必须类似于"IN('OP','CL')"否则Column1为2,条件必须类似"IN('RE','ST')".
我不知道如何准确解释,但是在选择和比较查询IP子网时存在问题。例如,有一个 IP 地址列表,我有另一个 CIDR/子网掩码列表(XXX0/24 等)。如何通过 T-SQL 了解第一个列表中的每个 IP 地址都在 CIDR/子网掩码列表中?
例如:
IP:172.28.112.23 -> 假
IP:172.28.111.33 -> 真
IP 列表输出:
子网输出: