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

文字列を数値にキャストし、nullまたは空の文字列を0として解釈します

    値のタイプは一貫している必要があります。空の文字列を0に合体させると、それをnullと比較できないことを意味します。 nullifで 。したがって、これらのいずれかが機能します:

    # create table tests (orig varchar);
    CREATE TABLE
    
    # insert into tests (orig) values ('1'), (''), (NULL), ('0');
    INSERT 0 4
    
    
    # select orig, cast(coalesce(nullif(orig,''),'0') as float) as result from tests;
     orig | result 
    ------+--------
        1 |      1
          |      0
          |      0
        0 |      0
    (4 rows)
    
    
    # select orig, coalesce(cast(nullif(orig,'') as float),0) as result from tests;
     orig | result 
    ------+--------
     1    |      1
          |      0
          |      0
     0    |      0
    (4 rows)
    


    1. Oracle休止状態ORA-01461CLOB

    2. MySQLビューの行ランク

    3. テーブル/データベースの文字セットを決定しますか?

    4. マルチクラウド環境全体でのPostgreSQLセキュリティの標準化