1
我有一個代碼爲什麼SQL忽略字符串末尾的額外空格?
DECLARE @A VARCHAR(10) = 'A'
DECLARE @B VARCHAR(10) = 'A '
IF(@[email protected])
SELECT 'Equal'
ELSE
SELECT 'Not Equal'
這裏@A和@B是不相等的。
要沒底無視多餘的空格,我已經試過
IF(REPLACE(@B,' ','.') = REPLACE(@A,' ','.'))
我的問題是:
- 爲什麼SQL把他們當作平等的嗎?
- 是否有其他方法可以做到這一點?
str_replace函數(」」, '',@ B)是什麼ü試圖做什麼? –
來自dupe答覆我貼:https://support.microsoft.com/en-gb/help/316626/inf-how-sql-server-compares-strings-with-trailing-spaces – Tanner
其他潛伏在翅膀。從['Len()']的文檔(https://docs.microsoft.com/en-us/sql/t-sql/functions/len-transact-sql):「返回指定的字符數字符串表達式**,不包括尾隨空白**。「 – HABO