今天同事問我關於sql server在字串尾隨著空格時進行字串對比的做法。關於這個問題正好在這裡講一下,就是sql server是按照ansi/iso sql-92中的定義做字串對比的。
在kb316626中已經做了闡述,就是sql server對待這種有尾隨空格的字元是會做自動截斷尾隨空格再對比的。
這裡做個實驗吧
select上面這段**會返回下面的結果*from
(select'a
' a union
allselect'a
'union
allselect
'a
'union
allselect
'a
') a
where a ='a
'select a, count(*) from
(select'a
' a union
allselect'a
'union
allselect
'a
'union
allselect
'a
') a
groupbya
select a from
(select'a
' a union
allselect'a
'union
allselect
'a
'union
allselect
'a
') a
where a like
'a %
'
可以看到sql server在做字串對比和排序(其實排序也需要做字串對比)是會截斷尾隨空格的,而在做like匹配的時候則例外。
那如果是空格開頭呢?這個肯定是沒有截斷起始空格的。再做乙個實驗。
select上面這段**會返回下面的結果*from
(select'a
' a union
allselect'a
'union
allselect
'a
') a
where a ='a
'select a, count(*) from
(select'a
' a union
allselect'a
'union
allselect
'a
'union
allselect
'a
') a
group
by a
字串對比
字串對比 vip 問題描述 給定兩個僅由大寫字母或小寫字母組成的字串 長度介於1到10之間 它們之間的關係是以下4中情況之一 1 兩個字串長度不等。比如 beijing 和 hebei 2 兩個字串不僅長度相等,而且相應位置上的字元完全一致 區分大小寫 比如 beijing 和 beijing 3 ...
字串對比
問題描述 給定兩個僅由大寫字母或小寫字母組成的字串 長度介於1到10之間 它們之間的關係是以下4中情況之一 1 兩個字串長度不等。比如 beijing和 hebei 2 兩個字串不僅長度相等,而且相應位置上的字元完全一致 區分大小寫 比如beijing 和 beijing 3 兩個字串長度相等,相應...
字串對比
題目內容 題目說起來很簡單,你會讀到兩個字串,每個字串佔據一行,每個字串的長度均小於10000字元,而且第乙個字串的長度小於第二個字串的。你的程式要找出第乙個字串在第二個字串中出現的位置,輸出這些位置,如果找不到,則輸出 1。注意,第乙個字元的位置是0。注意,第乙個字串在第二個字串中的位置可能不止一...