以下の内容はhttps://dk521123.hatenablog.com/entry/2013/01/21/233512より取得しました。


【SQL】SQL ~ 文字列操作関連 ~

■ はじめに

SQLでの文字列の扱いについてメモ。

目次

【1】文字列の取り出し
【2】文字列の長さ
【3】文字列の結合する
【4】文字列をパースする
【5】文字列の加工
 1)INITCAP

 【1】文字列の取り出し

以下の関数が使える

1)LEFT関数
2)RIGHT関数
3)SUBSTRING関数

 サンプル

/* → 東京都 (左から3文字)*/
SELECT LEFT('東京都世田谷区',3);

/* → 世田谷区 (右から4文字)*/
SELECT RIGHT('東京都世田谷区',4);

/* → 金曜 (4文字目から2文字取得)*/
SELECT SUBSTRING('今日は金曜日', 4, 2);

 【2】文字列の長さ

 * LEN関数

 1)サンプル

/* → 3 (半角)*/
SELECT LEN('123');

/* → 3 (行末の空白は無視)*/
SELECT LEN('123 ');

/* → 3 (全角)*/
SELECT LEN('あいう');

 2)使用例

* 一つの項目の中に複数の情報になっていた場合に分割するのに使う
 (例えば、【性別】【生年月日】。CODE = 'F20121011' や 'M20120211')

3)サンプル

-- 女性(Famale)のデータを取得 
SELECT * FROM Person AS P WHERE LEFT(P.CODE, 1) = 'F';

SELECT * FROM Person AS P
WHERE CONVERT(DATE, SUBSTRING(P.CODE, 2, LEN(P.CODE))) = CONVERT(DATE, '2012-10-11'))

【3】文字列の結合する

1)CONCAT

* 文字列を結合する
* 「||」でも可能

* Concatenate (コンカットネイト) = 連結する

Amazon Redshift ~ 文字列結合 ~
https://dk521123.hatenablog.com/entry/2021/09/09/093855

2)CONCAT_WS

* 文字列を第一引数で結合する
 => 以下の例を見れば理解が早いと思う
* Concatenate With Separator = 区切り文字を使用した連結

【4】文字列をパースする

* 「SPLIT_PART」を使う

Snowflake ~ 文字列操作関連 ~
https://dk521123.hatenablog.com/entry/2022/10/01/000000
PostgreSQL】文字列関数 ~ split_part ~
https://dk521123.hatenablog.com/entry/2021/09/07/000000

1)サンプル

select 
 's3://your-buket/custom/2024/10/30/sample.csv' AS v,
 SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -4) AS year,  -- 2024
 SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -3) AS month,  -- 10
 SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -2) AS year,  -- 30
 SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -4)
 || SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -3)
 || SPLIT_PART('s3://your-buket/custom/2024/10/30/sample.csv', '/', -2) AS date  -- 20241030
 ;

【5】文字列の加工

1)INITCAP

* 各単語の最初の文字が大文字で、後続の文字が小文字の入力文字列を返す
* e.g. WE CAN HANDLE => We Can Handle

PostgreSQL
https://www.postgresql.jp/docs/9.4/functions-string.html

-- Hi Thomas
initcap('hi THOMAS')

Snowflake
https://docs.snowflake.com/ja/sql-reference/functions/initcap

INITCAP( <expr> [ , '<delimiters>' ] )

 参考文献

http://news.mynavi.jp/articles/2008/10/22/tsql/index.html

関連記事

SQL正規表現関数 / REGEXP_XXX ~
https://dk521123.hatenablog.com/entry/2024/11/08/195101
Snowflake ~ 文字列操作関連 ~
https://dk521123.hatenablog.com/entry/2022/10/01/000000
Amazon Redshift ~ 文字列結合 ~
https://dk521123.hatenablog.com/entry/2021/09/09/093855
PostgreSQL】文字列関数 ~ string_agg ~
https://dk521123.hatenablog.com/entry/2021/08/21/000000
PostgreSQL】文字列関数 ~ split_part ~
https://dk521123.hatenablog.com/entry/2021/09/07/000000




以上の内容はhttps://dk521123.hatenablog.com/entry/2013/01/21/233512より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14