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

to_numberに数値以外の値を無視させる方法

    一般に、リレーショナルデータベースでは、評価の順序が定義されていないため、select 関数はwhereの前に呼び出されます 句はデータをフィルタリングします。私はこれがSQLServerの場合であることを知っています。 こちら Oracleでも同じことが起こり得ることを示唆する投稿です。

    case ただし、ステートメントはカスケードするため、順番に評価されます。そのため、私は次のことを好みます:

    select (case when NOT regexp_like(xy,'[^[:digit:]]') then to_number(xy)
            end)
    from ABC;
    

    これはNULLを返します 数値ではない値の場合。



    1. MysqlテーブルからExcelへの特定の列のエクスポート

    2. Postgresqlが存在する場所からの遅い削除

    3. SQL構文のmysqlカウントワード

    4. Hibernate + PostgreSQL +ネットワークアドレスタイプ(inet、cdir)