2011-04-07 12 views

答えて

7

SQL Serverは末尾のスペースを考慮していない「平等」を選択します。そういうわけで、それは ""と同等であると考えます。 http://support.microsoft.com/kb/316626

+0

彼らは 'LEN'機能の中で数えていないようです。奇妙な決定を下すようです。 –

+1

@ Phil私はなぜ 'LEN'機能がそのように実装されているのか分かります。あなたがchar(5)フィールドでそれを使っているとします。これは固定長であるため、末尾のスペースを考慮すると、 'LEN'は常にそのフィールドに5を返します。これはあまり役に立ちません。私はあなたが後書き空白を気にしてはいけない/してはならない時間の99%を想像しています。私は、コードがデータベースに格納されている末尾のスペースに依存しているとすれば、それが本当の理由であると本当に疑問に思うでしょう。 –

+0

それは妥当と思われるでしょう。 –

0

SQL Serverは、したがって、それはあなたがあなたのSELECTで指定した文字列リテラルを返し、TRUEと同一視boolean型として' ' = ''を評価しました。

で発生するのと同じ:=演算子を使って文字列を比較するとき1 = 1

+1

しかし、なぜ「 '' = '' 'ですか? – codeulike

+0

正確には、私は、平等の左右が同じかどうかを理解できました。 –

1

これはここの前に、非常によく、butterchickenによって回答されています:

ここで意味を説明するページがあります

あなたがトラブルを考え出すを持っている何

SQL Server 2008 Empty String vs. Space

関連する問題