我有一张这样的表:
CREATE TABLE A
(
pk int,
fk int,
col text,
sort_index int
)
我有这样的查询:
select b.fk from A where A.col in ('a','b', 'c')
group by b.fk
但我只希望b.fk
按顺序包含IN
子句中的所有元素(使用列sort_index
)。
这可能与SQL有关吗?如果是这样,怎么样? (Oracle)的
例如,我有这个数据
pk fk col sort_index
1 1 a 1
2 1 c 2
3 1 b 3
4 2 a 1
5 2 b 2
6 2 c 3
我只想要fk 2因为它拥有IN中的所有col并尊重命令。
答案 0 :(得分:0)
如果您可以在执行查询之前修改IN值,则此查询可能有效。
SELECT DISTINCT A1.FK
FROM A A1
WHERE A1.COL IN ('a', 'b', 'c')
and (SELECT WM_CONCAT(A2.COL)
FROM A A2
WHERE A2.FK = A1.FK) = 'a,b,c'
为此,您必须以逗号分隔的引用值('a','b','c')和仅逗号分隔的值(a,b,c)传递IN值。
希望有所帮助