SQLメモ(1) 副問い合わせ・関数
[副問い合わせ]
内側にあるSELECT文が実行される
↓
外側にあるSELECT文が実行される
3パターン
・単一の値の代わりとして、副問い合わせの検索結果を用いる
単一行副問い合わせとは?
検索結果が1行1列の1つの値となる副問い合わせを指す
・複数の値の代わりとして、副問い合わせの検索結果を用いる
複数行副問い合わせとは?
検索結果がn行1列の複数の値となる副問い合わせ(ただしnは1以上)
複数の値との判定を行うwhere句の条件式やselect文のfrom句に記述することが
出来る
【判定式】
IN演算子 複数の値との比較が可能
IN どれかと一致するなら真
ANY どれかと不等号式との比較で合致していれば真
ALL すべてと不等号式との比較で合致していれば真
・表の値の代わりとして、副問い合わせの検索結果を用いる
[substring]
select substring(メールアドレス, length(メールアドレス)-1, 2) from 回答者
[case文] 文字列の繋げ方 xx || xx
select trim(メールアドレス) as メールアドレス,
case when 年齢 >= 20 AND 年齢 < 30 then '20代'
when 年齢 >= 30 AND 年齢 < 40 then '30代'
when 年齢 >= 40 AND 年齢 < 50 then '40代'
when 年齢 >= 50 AND 年齢 < 60 then '50代' end
|| ':' ||
case when 性別 = 'M' then '男性'
when 性別 = 'F' then '女性' end as 属性
from 回答者
join 結合条件に合致したもののみで作る
left join 左の表は、結合条件に満たないものもすべて作る
right join 右の表は、結合条件に満たないものもすべて作る
full join すべての表は、結合条件に満たないものもすべて作る