我有以下代碼,它在上一條語句中與"@B LIKE @A"
比較返回false。與sql server中的LIKE運算符比較,VARCHAR文本不等於Char文本
我想知道爲什麼Like是這樣做的,因爲根據我的知識,就像基於文本的比較不基於數據類型一樣。
DECLARE @Var1 Char(20)
DECLARE @Var2 VarChar(20)
SET @Var1 = 'X'
SET @Var2 = 'X'
SELECT
@Var1 AS A,
@Var2 AS B,
LEN(@Var1) AS 'A Length',
LEN(@Var2) AS 'B Length',
CASE WHEN @Var1 = @Var2 THEN 'Yes' ELSE 'No' END AS 'A = B',
CASE WHEN @Var1 LIKE @Var2 THEN 'Yes' ELSE 'No' END AS 'A LIKE B',
CASE WHEN @Var2 LIKE @Var1 THEN 'Yes' ELSE 'No' END AS 'B LIKE A'
你讀過的[文件]中的備註部分(http://msdn.microsoft.com/en-us/library/ms179859.aspx) ? – GSerg
是的,我已閱讀,但它並沒有完全澄清的事情。 –
在SQL Server中它們是不同的。在Sybase ASE中,它們是Equal:P –