2

私はテーブルXYZを持っています:

ID   A       B       C
1    abc     ygh     NULL
2    fgfd    bjh     NULL
3    jhkj    fgd     cgbvc
1    NULL    NULL    yr
2    NULL    NULL    jg

一致する ID のみを取得するには、上記のテーブルで自己結合を行う必要があります。以下のクエリを使用しようとしています:

Select T1.ID, T1.A, T1.B, T2.C
From XYZ T1
INNER JOIN XYZ T2
where T1.ID = T2.ID

しかし、結果を下回っていません:

1   abc     ygh     yr
2   fgfd    bjh     jg

お知らせ下さい。クリシュナ

4

4 に答える 4

2

なぜあなたは使いたいのですかself join

Tip: 'A' + NULL=NULL

select ID,max(A) A,max(B) B,max(C) C
from XYZ
where A+B+C is null
group by ID

SQL フィドル

于 2013-10-03T10:37:13.430 に答える
0

私はあなたがそのようなものが欲しいと思います:

select T1.ID, T1.A, T1.B, T2.C from XYZ T1
inner join XYZ T2
on T1.ID = T2.ID
where T1.A is not null and T1.B is not null and T2.C is not null

T1それ自体に結合するととのすべての組み合わせが得られるためT2、すべての列が ではないものが必要ですnull

于 2013-10-03T10:26:55.453 に答える
0

以下のクエリを使用できますが、WHERE 句に基づいています。

select ID,A,B,C from (
select *, ROW_NUMBER() over (partition by id order by s desc ) as 'x' from (
Select  T1.ID,T1.A,T1.B,T2.C,ROW_NUMBER() over (partition by t1.id order by     
t1.a,t1.b ,t1.c ) as s
From xyz T1 JOIN xyz T2 on T1.ID = T2.ID ) abc ) xyz
where x = 1
于 2013-10-03T11:21:39.157 に答える