在条件子句中使用IF条件

时间:2018-10-18 03:28:31

标签: sql sql-server tsql

我有一个查询,我想在IF子句中使用类似WHERE的条件,所以我做类似的事情:

 ...
 AND (@City = '%'
         OR [a].[City] LIKE(@City))

所以我这样读:IF @City = '%'就可以继续,如果不执行OR子句OR [a].[City] LIKE(@City)

但是,当我运行代码结果时,不会返回我想要的值。我究竟做错了什么?我读错了吗?

3 个答案:

答案 0 :(得分:1)

您应该能够做到:

WHERE . . . AND
      [a].[City] LIKE @City

%LIKE的通配符,因此CITY LIKE '%'返回CITY的所有非NULL值。这似乎是为了使用'%'选择所有城市。

答案 1 :(得分:0)

尝试如下:

...
 AND (@City = '%'
         OR [a].[City] LIKE('%'+ @City + '%'))

答案 2 :(得分:0)

在您的where子句中尝试以下操作:  @City ='%'或[a]。[City]喜欢'%'+ @City +'%'