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

PostgreSQLCASE...複数の条件で終了

    この種のコードはおそらくあなたのために働くはずです

    SELECT
     *,
     CASE
      WHEN (pvc IS NULL OR pvc = '') AND (datepose < 1980) THEN '01'
      WHEN (pvc IS NULL OR pvc = '') AND (datepose >= 1980) THEN '02'
      WHEN (pvc IS NULL OR pvc = '') AND (datepose IS NULL OR datepose = 0) THEN '03'
      ELSE '00'
     END AS modifiedpvc
    FROM my_table;
    
    
     gid | datepose | pvc | modifiedpvc 
    -----+----------+-----+-------------
       1 |     1961 | 01  | 00
       2 |     1949 |     | 01
       3 |     1990 | 02  | 00
       1 |     1981 |     | 02
       1 |          | 03  | 00
       1 |          |     | 03
    (6 rows)
    



    1. Oracleの日時形式要素のリスト

    2. Postgresqlのwhere句でAlias列を使用する

    3. Oracleの最後の行をテーブルに取得する方法

    4. SQL Serverシステムデータベース–基本概念