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