0

次のようなテーブルがあります。

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

しかし、私は( column を使用して)節内b.fkのすべての要素を順番に含むのみが必要です。INsort_index

これはSQLで可能ですか?もしそうなら、どのように?(オラクル)

たとえば、私はこのデータを持っています

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

INにすべての列があり、順序を尊重しているため、fk 2だけが必要です。

4

1 に答える 1

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'

このためには、IN値をコンマ区切りの引用符で囲まれた値('a'、'b'、'c')として渡し、コンマ区切りの値(a、b、c)のみを渡す必要があります。

それが役に立てば幸い

于 2012-04-17T09:27:13.583 に答える