Sql 比较意味着什么,为什么不是';这不是真假吗?
我正在尝试以下操作,正如预期的那样,我得到了两列值Sql 比较意味着什么,为什么不是';这不是真假吗?,sql,sql-server,Sql,Sql Server,我正在尝试以下操作,正如预期的那样,我得到了两列值 declare @aa varchar(10) = 'bb' declare @bb varchar(10) = 'aa' select @aa, @bb 然后我尝试了以下方法,但我无法解释结果。除了命令成功执行外,我什么也看不到 declare @aa varchar(10) = 'bb' declare @bb varchar(10) = 'aa' select @aa = @bb 我在这里做了什么?我期待一个真/假或一/零或一个错误。
declare @aa varchar(10) = 'bb'
declare @bb varchar(10) = 'aa'
select @aa, @bb
然后我尝试了以下方法,但我无法解释结果。除了命令成功执行外,我什么也看不到
declare @aa varchar(10) = 'bb'
declare @bb varchar(10) = 'aa'
select @aa = @bb
我在这里做了什么?我期待一个真/假或一/零或一个错误。
select@aa=@bb
是类似于SET@aa=@bb
使用选择IIF进行比较(@aa=@bb,‘相同’、‘不同’)
不平等选择IIF(@aa@bb,'Different','Same')
通常
选择IIF((条件),1,0)
其中1为真,0为假。要在查询中进行比较:
select
case
when @aa = @bb then 'MATCH'
else 'NOT MATCH'
end
你在做什么:
select @aa, @bb
上面选择存储在变量中的两个值作为单独的“列”
上述设置变量
@aa
等于@bb
的值。您不是在比较变量,而是在分配变量操作员将分配值
declare @aa varchar(10) = 'bb'
declare @bb varchar(10) = 'aa'
select @aa, @bb
您可以这样尝试:
declare @aa varchar(10) = 'bb'
declare @bb varchar(10) = 'aa'
if(@aa = @bb)
print 'Match'
else
print 'Not Match'
或者更紧凑地使用IIF
SELECT IIF(@aa = @bb, 'Match', 'Not Match')
我在等号处发现语法错误。对于除我之外的其他DBs,它是否可能是有效的命令(即IFF)?我正在使用SQLServer14。我假设这样一个基本的操作在所有版本中都应该有相同的语法,但假设它部分是基于ass构建的,这就是我可能的…@KonradViltersten看到我的更新答案,我附上了一个实时演示。接下来的问题是-如果我想比较字符串,但是关于相等但不相等,该怎么办?假设我想比较一下,第一个字母是否在第二个字母之前。在when条件中使用不平等符号可以吗?还是以后会产生问题?