使用[WHERE,IN,LEN,IN] TSQL

时间:2016-04-15 18:36:19

标签: tsql reporting-services

我试图在我的where子句中写一个简单的语句,但我不相信我的语法正确。查询查找是否搜索这些ID是否在此列中,但我不确定是否可以在同一行中使用IN两次?任何人都可以提供一些反馈。谢谢!

WHERE... AND (tableA.ColumnA in LEN(LTRIM(RTRIM(TableB.ColumnB))) in (5,7) )

我在第二个IN附近遇到一些语法错误,无法弄清楚这是否是正确的方法来解决这个问题?

3 个答案:

答案 0 :(得分:2)

当你对一个列使用IN时,它需要是一个子选择,但这是一个正确的方法你可以这样做(Wes的子选择仍然有相同的语法错误):

WHERE... AND (tableA.ColumnA in (
 SELECT ColumnB FROM TableB WHERE LEN(LTRIM(RTRIM(TableB.ColumnB))) in (5,7) 
))

答案 1 :(得分:1)

尝试使用子查询。

WHERE... AND (SELECT TA.ColumnA 
              FROM TableA TA 
              WHERE TA.ColumnA IN LEN(LTRIM(RTRIM(TABLEB.ColumnB))) IN (5,7)

答案 2 :(得分:0)

使用join

 join TableB 
   on TableB.ColumnB = tableA.ColumnA   
  and LEN(LTRIM(RTRIM(TableB.ColumnB))) in (5,7)