sql >> データベース >  >> RDS >> Oracle

where句で空白文字は無視されます

    リテラル に関するOracleドキュメントを参照してください。 :

    および空白が埋め込まれた比較セマンティクス 状態:

    比較の左側はCHAR(10)であるため 右側はテキストリテラルであり、空白が埋め込まれた比較セマンティクスが使用され、'hello ' = 'hello' 本当です。

    これは簡単な例で確認できます:

    SELECT * FROM DUAL WHERE 'hello    ' = 'hello';
    

    更新

    [TL; DR]この動作は、少なくともOracle 7(1992年にリリース)以降、すべてのバージョンのOracleで発生しています。 20年以上前のリリースに関するドキュメントの検索をやめましたが、これがほとんどの(すべての?)バージョンでの動作であることがわかると思います。

    さまざまなバージョンのドキュメントは次のとおりです。



    1. トリガーがテーブルを認識しない(NEW.valuesのコンテンツを複数の行に分割して別のテーブルに挿入するトリガー)

    2. Laravelでクエリ実行時間をテストする

    3. 月ごとのMySQLテーブルパーティション

    4. MySQLはすべてのユーザー定義変数を表示します