2

PostgreSQL マニュアルの指示に従おうとしています。 PostgreSQL: ドキュメント: 9.1: 制御構造 私の PostgreSQL サーバーは、Windows 32 ビットでバージョン 9.1.14 です。

次の SQL ステートメントは予期せず構文エラーになります。

SELECT
  CASE 1
    WHEN 1,2 THEN 'x'
    ELSE 'y'
  END;

「x」が返されることを期待しています。

ただし、より伝統的なコードは問題なく動作します。

SELECT
  CASE 1
    WHEN 1 THEN 'x'
    WHEN 2 THEN 'x'
    ELSE 'y'
  END;
4

1 に答える 1

4

CASE手続き型言語によって提供される構文を使用していますplpgsql。これはSQL構文とていますが、同一ではありません。の SQL バージョンへのリンクは次のとおりです。 CASECASE

ご覧のとおり、これ1,2は許可されていません。プレーンのみですexpression。したがって、次のように書くことができます。

SELECT
  CASE 
    WHEN 1 in (1,2) THEN 'x'
    ELSE 'y'
  END;
于 2012-08-01T07:10:10.443 に答える