1

私は次のようなデータテーブル(あまり構造化されていません)を持っています

ClientID | Parameter | Value 
111..........Street..........Evergreen
111..........Zip................75244
111..........Country.........USA
222..........Street..........Evergreen
222..........Zip................75244
222..........Country.........USA
333..........Street..........Evergreen
333..........Zip................75240
333..........Country.........USA
444..........Street..........Evergreen
444..........Zip................75240
444..........Country.........USA
555..........Street..........Evergreen
555..........Zip................75240
555..........Country.........USA
666..........Street..........Some Street
666..........Zip................75244
666..........Country.........USA

このために、Street = Evergreen にあるすべてのクライアント ID を選択したいのですが、ZIP 75244 でも 700K を超える行があるため、すべてをエクスポートすると大きな問題になります。

私の考えは:

SELECT ClientID 
from (select ClientID from table1 where Value = 'evergreen')
Where Zip = '75244'

しかし、この場合、正確な結果は得られません。ClientID 111 と 222 の値を取得したいと思います。これは、Street= Evergreen と Zip=75244 を探している基準に一致するためです。

これを行う方法はありますか?

4

3 に答える 3

2
Select ClientId from MyTable e
inner join MyTable z On e.clientId = z.ClientID
Where e.value = 'Evergreen' and e.Parameter = 'Street'
and z.parameter = 'Zip' and z.Value = '75244'

結合でエイリアスを使用するだけで、「テーブルを2回使用」できます

于 2013-08-20T01:19:54.410 に答える