PostgreSQLクエリで変数を宣言する 質問する

PostgreSQLクエリで変数を宣言する 質問する

PostgreSQL 8.3 クエリで使用する変数を宣言するにはどうすればよいですか?

MS SQL Server では次の操作を実行できます。

DECLARE @myvar INT;
SET @myvar = 5/
    
SELECT * FROM somewhere WHERE something = @myvar;

PostgreSQL で同じことを行うにはどうすればよいでしょうか? ドキュメントによると、変数は単に「name type;」として宣言されますが、これにより構文エラーが発生します。

myvar INTEGER;

正しい構文の例を教えていただけますか?

ベストアンサー1

私は同じ目的を達成するためにWITH、エレガントさには程遠いですが、同じことができます。ただし、この例ではやりすぎです。また、特にお勧めしません。

WITH myconstants (var1, var2) as (
   values (5, 'foo')
)
SELECT *
FROM somewhere, myconstants
WHERE something = var1
   OR something_else = var2;

おすすめ記事