请教一下,这种 sql 怎么写
数据库是 oracle
我从一个表里查处的数据类似于 1,2,3
然后,这个是另外一个数据表的 id,我想把这个结果放到 in 里面,这样查出 id 对应的数据信息。
大概就是 select * from a where id in (select ids from b)
但是我不知道怎么把结果放到 in 里
求大佬指教,谢谢。
数据库是 oracle
我从一个表里查处的数据类似于 1,2,3
然后,这个是另外一个数据表的 id,我想把这个结果放到 in 里面,这样查出 id 对应的数据信息。
大概就是 select * from a where id in (select ids from b)
但是我不知道怎么把结果放到 in 里
求大佬指教,谢谢。
如果这个数据是单行的某列,想按逗号拆分,看下 REGEXP_SUBSTR 这个函数
这个意思?
直接 in 是不行的,要用函数处理一下,具体的做法可以百度。
id 不能又包含关系 1,11,111 不行
一定要这么查的话,用 PostgreSQL 是这么写的
with a(id, v) as (values (1,’a’), (2,’b’), (3,’c’)), b(id,ids) as (values (8, ‘1,3,4’), (9,’2,5,8′))
SELECT * from b
cross join regexp_split_to_table(ids, ‘,’) as aids(aid)
inner join a on a.id = aids.aid::int
where b.id = 8;