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_SAMPLEWHERE I1_CODE = SOME (SELECT I1_CODE FROM T2_SAMPLEWHERE 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 | 
 »
 »