次のクエリがあるとします。
select *
from myTable
where myTable.myCol in (1,2,3)
私はそれをしたいと思います:
with allowed_values as (1,2,3)
select *
from myTable
where myTable.myCol in allowed_values
最初の行に構文エラーが表示されます。修正を手伝ってもらえますか?
次のクエリがあるとします。
select *
from myTable
where myTable.myCol in (1,2,3)
私はそれをしたいと思います:
with allowed_values as (1,2,3)
select *
from myTable
where myTable.myCol in allowed_values
最初の行に構文エラーが表示されます。修正を手伝ってもらえますか?
あなたの構文に最も近いと思います:
WITH allowed_values (id) AS
( VALUES
(1), (2), (3)
)
SELECT *
FROM myTable
WHERE id IN
(TABLE allowed_values) ;
SQLフィドルでテスト済み
試す
with allowed_values as (select 1 as tst union all select 2 union all select 3)
select * from myTable a
inner join c1 b ON (b.tst = a.myCol)
最も簡単な方法は、共通テーブル式を修正してから、副選択で使用することです。
with allowed_values as (
select 1 id
union all
select 2
union all
select 3
)
select * from myTable
where myTable.id in (select id from allowed_values)