sql - ms sql在if语句中使用like语句结果

标签 sql sql-server

declare @d varchar
set @d = 'No filter'

if (@d like 'No filter')
  BEGIN
    select 'matched'
  end
else
  begin
    select 'not matched'
  end

上面的结果总是不匹配,任何人都可以告诉我为什么以及如何在我的存储过程中使用类似或“=”结果。 谢谢

最佳答案

将您的声明更改为

declare @d varchar(10)

然后

declare @d varchar(10)

set @d = 'No filter' 

if (@d LIKE 'No filter') 
  BEGIN 
    select 'matched' 
  end 
else 
  begin 
    select 'not matched' 
  end

会起作用的。

请记住LIKE用于模式匹配,

类似的东西

DECLARE @Val VARCHAR(10)
SET @Val = 'foo bar'
if (@Val LIKE '%foo%') 
  BEGIN 
    select 'matched' 
  end 
else 
  begin 
    select 'not matched' 
  end

因此,根据您的情况,您可能需要将代码更改为

declare @d varchar(10)
set @d = 'No filter' 

if (@d = 'No filter') 
  BEGIN 
    select 'matched' 
  end 
else 
  begin 
    select 'not matched' 
  end

带有“=”

关于sql - ms sql在if语句中使用like语句结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2601394/

相关文章:

mysql - 加载数据 infile 以 "_"分隔单词

sql - 如何在 COALESCE() 中获得不同的值

sql-server - SQL Server GetUTCDate 默认无效

sql-server - CTE SQL查询中的多个递归联合所有选择

sql - 如何将地址文本列拆分为多列

php - Cake PHP 联接查询以关联数组形式返回

sql - Azure SQL 数据库中的索引

sql - SQLite查询性能:UPDATE与JOIN

mysql - sql 未获取日期范围

sql-server - SQL 服务器 2008 R2 : how to disable the remote access only for the user "sa"?