SQL Server 2008 では、主キーとして列 ZoneReference を持つ Zone という名前のテーブルについて考えてみましょう。クエリ SELECT '"' ZoneReference '"' AS QuotedZoneReference FROM Zone WHERE ZoneReference = 'WF11XU' を実行すると、予期せず末尾にスペースのある "WF11XU " が返されます。
これは、SQL Server が ANSI/ISO SQL に準拠していることが原因で発生します。 92 仕様では、比較のために文字列が埋め込まれ、長さが一致する場合は同等として扱われます。その結果、'abc' と 'abc ' は等しいとみなされます。
この動作は、末尾のスペースが無視される WHERE 句の述語にも影響します。ただし、例外は LIKE 述語で、式の右側に末尾のスペースがある場合、パディングせずに値を比較します。
比較で末尾のスペースを抑制するには、次の TRIM() 関数の使用を検討してください。クエリまたはデータ操作ステートメント。
以上がSQL Server の WHERE 句は文字列比較で末尾のスペースをどのように処理しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。