in子句中的情况

问题描述

我需要一个SQL查询,该查询的WHERE CASE WHEN语句带有in列表。我不确定查询的哪一部分错了,

首先,我需要从Coldelist和IDD,IDP中创建一个KEY,然后由于我的代码列表的长度是5或6,因此需要使用CASE WHEN检查它们的长度是5还是6,然后在单独的列表中进行搜索(每个列表几乎200或更多),因为我的目的是使用EXCEPT比较某些表的数据

我的sql语句如下:

SELECT
    codelist = CASE 
                  WHEN LEN(codelist) = 5
                     THEN CONCAT(CONCAT(SUBSTRING(codelist,1,5),IDD),IDP) 
                  WHEN LEN(codelist) = 6
                     THEN CONCAT(CONCAT(SUBSTRING(codelist,6),IDP) 
                  ELSE codelist 
               END,codelist 
FROM
    [table1]
WHERE
    (codelist = CASE 
                   WHEN LEN(codelist) = 5  
                      THEN (SELECT 'FEV00','FEV64','FEV97','FEV90')
                   WHEN LEN(codelist) = 6   
                      THEN (SELECT 'FEV208','FEV227','FEV308','FEV326')
                END)
EXCEPT
SELECT
     ....

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)