誰かがこの行動を説明できるかどうか疑問に思いましたか?
DECLARE @RandomParam1 NVARCHAR
DECLARE @RandomParam2 NVARCHAR
DECLARE @RandomParam3 NVARCHAR
SET @RandomParam1 = '0HelloWorld'
SET @RandomParam2 = '9HelloWorld'
SET @RandomParam3 = '15HelloWorld'
select 1 where '0' = @RandomParam1 -- true
select 1 where '0' = '0HelloWorld' -- false
select 1 where '9' = @RandomParam2 -- true
select 1 where '15' = @RandomParam3 -- false
パラメータを使用した文字列の比較で、パラメータを使用しない場合とは異なる結果が得られるのはなぜですか?そして、なぜそれは「0」=「0whatever」と主張するのですか?
パラメータがそれを数値として比較しようとしている可能性があると思いますが、最後の例も真である必要があります。
何か案は?