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

SQL-文字を比較するときにスペースを埋めるのはなぜですか?

    あなたはさまざまなタイプのキャラクターと何が起こっているのかを混乱させています。実行時:

    SELECT * from SOME_TABLE where CUSTOMER_NAME = 'Popeye '
    

    「SOME_TABLEのすべての行に」スペースは追加されません。唯一の問題は、結果の幅です。この幅は、WHERE句に表示されるものではなく、SOME_TABLEの列のプロパティによって設定されます。

    CUSTOMER_NAMEがchar(x)値として宣言されている場合、文字列はその長さである必要があります。たとえば、char(10)です。 そして、それに「ポパイ」を割り当てます。値は6文字で、これはどういうわけか10まで埋める必要があります。 SQL標準では、右側をパディングして、値を'Popeye 'にします。 。

    可変長の文字列が必要な場合は、varcharまたはvarchar2を使用してください。




    1. アレイをデータベースに挿入できません

    2. ストアドプロシージャをファイルにスクリプト化する方法は?

    3. Groovyを使用してMySQLに接続する

    4. ヒープテーブルへのINSERT…SELECTによる最小限のロギング