SQLを勉強し始めて、よく目にする関数をまとめていきます。
RDBMSによって使える関数が異なりますが、SQL Server向けの関数をまとめます。
集計関数
AVG 平均を計算
SELECT AVG(販売単価) AS 平均単価
FROM Shohin
COUNT 行数をカウント
SELECT COUNT(販売単価) AS 単価の行数
FROM Shohin
MAX 最大値を得る
SELECT MAX(販売単価) AS 最も高い単価商品
FROM Shohin
MIN 最小値を得る
SELECT MIN(販売単価) AS 最も低い単価商品
FROM Shohin
SUM 合計値
SELECT MIN(売上) AS 売上合計
FROM Shohin
文字列関数
CONCAT 文字列結合
SELECT CONCAT(last_name, '', full_name)
FROM Staff
LEN 文字列長を得る
SELECT LEN(商品名) AS 商品名文字数
FROM Shohin
SUBSTRING 文字列の部分抽出
SUBSTRING(切り取り文字列, 切り取り開始位置, 切り取り文字数)
SELECT SUBSTRING('あいうえお’, 2, 3)
-- いうえ
--'あいうえお'の2文字目から3文字切り取る
日付関数
CURRENT_TIMESTAMP 現在日時を得る
SELECT CURRENT_TIMESTAMP
FORMAT 日付時刻の整形
SELECT FORMAT(GETDATE(), 'yyyyMMdd')
変換関数
CAST 型変換を行う
CAST(値 AS 変換後のデータ)
数値型 → 文字列型
SELECT CAST(100 AS VARCHAR(10))
文字列型 → 日付型
SELECT CAST('2018-01-01' AS DATE)
CONVERT 型変換を行う
CONVERT(変換後のデータ, 変換したい値)
SELECT CONVERT(decimal, '10.1')
COALESCE NULLでない最初の値を返す
COALESCE(列や式1, 列や式2・・・)
SELECT COALESCE('A', 'B', 'C')
--A
SELECT COALESCE(NULL, 'B', 'C')
--B
COALESCE(列や式, NULLの代替値)
SELECT COALESCE(hanbai_tanka, 0) AS 販売単価
ISNULLもNULL値の変換ができます
流れはCOALESCEと同じです。
REPLACE 文字列を置換
REPLACE(対象文字列, この文字を, これに置き換える)
SELECT REPLACE('YAMADA', 'DA', 'ZAKI')
--YAMAZAKI
算術関数
ABS 絶対値を取得
ABS(数値)
SELECT ABS(-50)
--50
ROUND 丸め処理
・ROUND(四捨五入したい数字)
・ROUND(四捨五入したい数字, 小数点第何位まで)
SELECT ROUND(10.234, 2)
--10.230
POWER べき乗
POWER(数値, 〜乗)
SELECT POWER(3, 4)
--81
分析関数
RANK 順位を決める
対象列, RANK() OVER(ORDER BY 対象列 DESC)
SELECT tanka RANK OVER (ORDER BY tanka DESC)
FROM Shohin