select 氏名,
給与 + iif(手当 is null,0,手当) as 支給額
from 社員テーブル
select 氏名,
給与 + iif(isnull(手当),0,手当) as 支給額
from 社員テーブル
select 氏名,
給与 + val(手当&'') as 支給額
from 社員テーブル
SQLServer での記述
select 氏名,
給与 + isnull(手当,0) as 支給額
from 社員テーブル
select 氏名,
給与+ coalesce(手当,0) as 支給額
from 社員テーブル
MySQL での記述
select 氏名,
給与+ ifnull(手当,0) as 支給額
from 社員テーブル
select 氏名,
給与+ coalesce(手当,0) as 支給額
from 社員テーブル
Oracle での記述
select 氏名,
給与+ nvl(手当,0) as 支給額
from 社員テーブル
select 氏名,
給与+ coalesce(手当,0) as 支給額
from 社員テーブル
PostgreSQL での記述
select 氏名,
給与+ coalesce(手当,0) as 支給額
from 社員テーブル
Case
SQL の記述内に複雑な条件を使用します
EXCEL と MDB での記述
select 氏名,所属,
switch(
所属='0001','A'
,所属='0002','B'
,所属<>'0002','X'
) as 所属分類
from 社員テーブル
SQLServer・MySQL・PostgreSQL での記述
select 氏名,所属,
case 所属
when '0001' then 'A'
when '0002' then 'B'
else 'X'
end as 所属分類
from 社員テーブル
select 氏名,所属,
case
when 所属 = '0001' then 'A'
when 所属 = '0002' then 'B'
else 'X'
end as 所属分類
from 社員テーブル
Oracle での記述
select 氏名,所属,
case
when 所属 = '0001' then 'A'
when 所属 = '0002' then 'B'
else 'X'
end as 所属分類
from 社員テーブル
select 氏名,所属,
decode(所属,
'0001','A',
'0002','B',
'X'
) as 所属分類
from 社員テーブル
部分文字列
EXCEL と MDB での記述 (※ left と right が使用できます)
select 氏名
,mid(氏名,2,1) as 2文字目
from 社員テーブル
where
mid(氏名,2,1) = '田'
-----------------------------------------------------
文字列の長さ
-----------------------------------------------------
select 氏名
,len(氏名) as 長さ1
,lenb(氏名) as 長さ2
from 社員テーブル
SQLServer での記述 (※ left と right が使用できます)
select 氏名
,substring(氏名,2,1) as [2文字目]
from 社員テーブル
where
substring(氏名,2,1) = '田'
-----------------------------------------------------
右から文字列を取得する場合は以下のように記述します
-----------------------------------------------------
select 氏名,len(氏名) as 長さ
,substring(氏名,len(氏名)-2+1,2) as 右から二文字
from 社員テーブル
MySQL での記述 (※ left と right が使用できます)
select 氏名
,substring(氏名,2,1) as 2文字目
from 社員テーブル
where
substring(氏名,2,1) = '田'
select 氏名
,mid(氏名,2,1) as 2文字目
from 社員テーブル
where
mid(氏名,2,1) = '田'
-----------------------------------------------------
文字列の長さを取得する場合は注意
-----------------------------------------------------
select 氏名
,length(氏名) as 長さ1
,char_length(氏名) as 長さ2
from 社員テーブル
Oracle での記述
select 氏名
,substr(氏名,2,1) as "2文字目"
from 社員テーブル
where
substr(氏名,2,1) = '田'
-----------------------------------------------------
右から文字列を取得する場合は以下のように記述します
-----------------------------------------------------
select 氏名,length(氏名) as 長さ
,substr(氏名,length(氏名)-2+1,2) as 右から二文字
from 社員テーブル
-----------------------------------------------------
文字列の長さ
-----------------------------------------------------
select 氏名
,length(氏名) as 長さ1
,lengthb(氏名) as 長さ2
from 社員テーブル
PostgreSQL での記述
select 氏名
,substring(氏名,2,1) as 2文字目
from 社員テーブル
where
substring(氏名,2,1) = '田'
select 氏名
,substr(氏名,2,1) as 2文字目
from 社員テーブル
where
substr(氏名,2,1) = '田'
-----------------------------------------------------
右から文字列を取得する場合は以下のように記述します
-----------------------------------------------------
select 氏名,length(氏名) as 長さ
,substring(氏名,length(氏名)-2+1,2) as 右から二文字
from 社員テーブル
-----------------------------------------------------
文字列の長さ
-----------------------------------------------------
select 氏名
,length(氏名) as 長さ1
,octet_length(氏名) as 長さ2
from 社員テーブル