🐈

条件分岐と関数

2024/07/26に公開

条件分岐

⚫︎CASE

CASE 評価する列や式 WHEN 値1(条件式、列名) THEN 値1の時に返す値
	WHEN 値2(条件式、列名) THEN 値2の時に返す値
	ELSE デフォルト値
END

SELECT カラム名1, カラム名2
CASE WHEN カラム名1 < 5000 THEN 'お小遣い'
		 WHEN カラム名1 < 10000 THEN '一時収入'
		 WHEN カラム名1 < 30000 THEN '給料出た!'
		 ELSE '想定外の収入です!'
END AS 収入の分類
FROM テーブル名
WHERE カラム名1 > 0

文字列関数

⚫︎LENGTH / LEN - 文字列の長さを取得

構文

LENGTH(文字列を表す列)

SELECT カラム名,LENGTH(カラム名) AS メモの長さ FROM 家計簿
WHERE LENGTH(カラム名) <= 10

⚫︎TRIM - 空白を除去

構文

TRIM(文字列を表す列) FROM テーブル名

SELECT カラム名,TRIM(カラム名) AS 空白除去したメモ 
FROM テーブル名

⚫︎REPLACE - 指定文字を置換

構文

REPLACE(置換対象の文字列,置換前の部分文字列,置換後の部分文字列)

UPDATE テーブル名
	SET カラム名 = REPLACE(カラム名,'購入','買った')

⚫︎SUBSTRING / SUBSTR - 文字列の一部を抽出

構文

SUBSTRING(文字列を表す列,抽出を開始する位置,抽出する文字の数)
SUBSTR(文字列を表す列,抽出を開始する位置,抽出する文字の数)

SELECT * FROM テーブル名
WHERE SUBSTRING(カラム名, 1, 3) LIKE '%費%'

⚫︎CONTACT - 文字列を連結

構文

CONCAT(文字列,文字列,[, 文字列])

SELECT CONCAT(カラム名,':' || カラム名) FROM テーブル名

数値関数

⚫︎ROUND - 指定した桁数で四捨五入

構文

ROUND(数値を表す列,有効とする桁数)
SELECT カラム名, ROUND(カラム名,-2) FROM テーブル名

⚫︎TRUNC - 指定した桁数で切り捨て

構文

TRUNC(数値を表す列,有効とする桁数)

SELECT カラム名, ROUND(カラム名,-2) FROM テーブル名

⚫︎POWER - べき乗を計算

構文

POWER(数値を表す列,何乗するか数値を入力)

SELECT カラム名, POWER(カラム名,3) FROM テーブル名
//カラムを三乗する

時間関数

⚫︎CURRENT - 現在時刻を取得

構文

CURRENT_TIMESTAMP → 現在の日付(,,,,,)
CURRENT_DATE    → 現在の日付(,,)
CURRENT_TIME    → 現在の日付(,,)

INSERT INTO 家計簿 
VALUE (CURRENT_TIMESTAMP, '食費', 'ドーナッツを買った',0,260)

変換関数(型変換、null値の変換)

⚫︎CAST - データ型変換

構文

CAST(変換する値 AS 変換する型)

SELECT CAST(カラム名 AS INTEGER)FROM テーブル名

⚫︎COALECE - 最初に現れるNULLでない値を返す

構文

COALESE(列や式1,列や式2,列や式3,)

Discussion