Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL从CASE语句返回多个值_Sql_Sql Server - Fatal编程技术网

SQL从CASE语句返回多个值

SQL从CASE语句返回多个值,sql,sql-server,Sql,Sql Server,如何重写此SQL语句以执行所需操作 SELECT * FROM TABLE WHERE COLUMN_NAME_1 IN (CASE WHEN COLUMN_NAME_2 = 'X' THEN 'A' WHEN COLUMN_NAME_2 = 'Y' THEN 'B', 'C' END) 显然,我不能从CASE子句返回多个值。。。那我还能怎么写呢?我很确定我今天很慢,因为这看起来很容易 SELECT * FROM Table WHERE

如何重写此SQL语句以执行所需操作

 SELECT * FROM TABLE 
    WHERE COLUMN_NAME_1 IN (CASE 
        WHEN COLUMN_NAME_2 = 'X' THEN 'A' 
        WHEN COLUMN_NAME_2 = 'Y' THEN 'B', 'C' END)
显然,我不能从CASE子句返回多个值。。。那我还能怎么写呢?我很确定我今天很慢,因为这看起来很容易

 SELECT * FROM Table WHERE
    (COLUMN_NAME_2 = 'X' AND COLUMN_NAME_1 = 'A') OR
    (COLUMN_NAME_2 = 'Y' AND COLUMN_NAME_1 IN ('B', 'C'))

这假定您只希望在列_NAME_2中包含X或Y的结果。如果需要其他行,则无法区分原始SQL中的哪些行

 SELECT * FROM Table WHERE COLUMN_NAME_2 = 'X' AND COLUMN_NAME_1 = 'A'
 UNION ALL
 SELECT * FROM Table WHERE COLUMN_NAME_2 = 'Y' AND COLUMN_NAME_1 IN ('B', 'C')