SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access
WHERE 式 比較演算子 SOME ( 副問い合せ )
SOMEは指定した式と副問い合せの結果を比較するときに使用します。
このとき比較演算子の条件が一つでも真になるとき真、条件がすべて偽になるとき偽になります。
関連キーワード
SQL実行例の説明(1)
T1_SAMPLE表からI1_CODEが副問い合せの結果リストのいずれかの条件を満たすデータを取得します。
・T2_SAMPLE表からI1_NAMEが車体部品に一致するI1_CODEのデータを取得します。
・副問い合わせの結果リストを使用して、T1_SAMPLE表からI1_CODEがこの結果リストのいずれかの条件を満たすデータを取得します。
SELECT * FROM T1_SAMPLE
WHERE I1_CODE = SOME (
SELECT I1_CODE FROM T2_SAMPLE
WHERE I1_NAME = '車体部品'
);
SQL実行の結果(1-1)
条件式に一致する副問い合わせの結果リストI1_CODEは201, 202の2件となる。(右)
I1_CODE | I1_NAME | I1_PRICE |
---|---|---|
101 | 汎用部品 | 500 |
201 | 車体部品 | 2300 |
202 | 車体部品 | 2400 |
301 | 特殊部品 | 4500 |
T2_SAMPLE
I1_CODE |
---|
201 |
202 |
副問い合わせの結果リストよりI1_CODEが201, 202のいずれかの条件を満たすデータ4件を取得します。(右)
SERIAL | I1_CODE | I_COST |
---|---|---|
203001 | 101 | 2500 |
203002 | 201 | 6500 |
203003 | 301 | 9800 |
203004 | 201 | 5500 |
203005 | 201 | 5600 |
203006 | 202 | 5600 |
T1_SAMPLE
SERIAL | I1_CODE | I_COST |
---|---|---|
203002 | 201 | 6500 |
203004 | 201 | 5500 |
203005 | 201 | 5600 |
203006 | 202 | 5600 |