SQLの比較条件にスペースを入れたとき

最近、久方ぶりにがっつりとSQLを書いていたりするのですが、いろいろと忘れているというか、細かい仕様を理解しきれていないというか^^;

今日も一通り書き終えて動作確認もし、最後にもう一度だけコードを確認しておくかーと見直してみていると、一致しないはずのデータが取得できていることに気が付いてしまいました・・。

テーブルに格納された値は前後のスペースを除いたきれいな状態。それに対して検索をかけるときの条件には余分なスペースが残ったまま、こんな感じ。

ID NAME
1 ahiru_sp

SELECT ID FROM USERS WHERE NAME = 'ahiru_sp△'

これ、文字列として一致しないと思っていたのですが、調べてみると後ろの空白は無視されるとのこと。

比較検索条件 - TechNet.aspx)

比較では後続の空白は無視されます。たとえば、以下はすべて同じです。

WHERE LastName = 'White' WHERE LastName = 'White ' WHERE LastName = 'White' + SPACE(1)

なるほどそうだったのか。という感じで、また一つ賢く(?)なりました。