TRIM、LPAD、RPAD
TRIM/LTRIM/RTRIMで空白を除去し、LPADとRPADで固定幅の識別子をパディングします。
「TRIM、LPAD、RPAD」はCoddyKit上の無料SQL Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはSQL Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 SQL Academyコースには全4レッスンが含まれています。
TRIM:余分な文字を除去する
デフォルトでは、先頭と末尾の空白を取り除きます。
SELECT TRIM(' hello '); -- 'hello'
SELECT LTRIM(' hello '); -- 'hello '
SELECT RTRIM(' hello '); -- ' hello'任意の文字を指定したTRIM
任意の文字を取り除きます。
SELECT TRIM(BOTH '0' FROM '0001230'); -- '123'
SELECT TRIM(LEADING '#' FROM '#hashtag'); -- 'hashtag'ユーザー入力のクリーニング
ユーザーが送信した文字列は、必ずINSERT/UPDATE時にトリミングしてください。そうしないと、' bob ' と 'bob' は異なる行になります。
INSERT INTO users (full_name) VALUES (TRIM(:input));
-- Or enforce at the database with a trigger / CHECK:
ALTER TABLE users
ADD CONSTRAINT name_not_padded CHECK (full_name = TRIM(full_name));LPADとRPAD
固定幅になるように埋めます。
SELECT LPAD('7', 4, '0'); -- '0007' (left-pad)
SELECT RPAD('hi', 5, '.'); -- 'hi...' (right-pad)
SELECT LPAD(id::TEXT, 6, '0') FROM orders; -- '000123'レシート形式の出力を作成する
PADとCONCATを組み合わせて、等幅フォント向けのレポートを作成します。
SELECT RPAD(product_name, 20, '.') || LPAD(price::TEXT, 8, '.') FROM products;TRANSLATE:文字単位の変換
第2引数の各文字は、第3引数の同じ位置にある文字に対応します。
SELECT TRANSLATE('abc123', 'abc', 'xyz'); -- 'xyz123'
SELECT TRANSLATE(phone, '-() ', ''); -- strip multiple chars at once文字列の分割
配列に分割します。
SELECT STRING_TO_ARRAY('a,b,c,d', ','); -- {'a','b','c','d'}
SELECT REGEXP_SPLIT_TO_ARRAY('a1 b2 c3', '\s+');分割した配列を行に戻す
UNNESTを使うと、配列列を展開して行にできます。
SELECT id, UNNEST(tags) AS tag FROM posts;配列を文字列に戻す
分割の逆の処理です。
SELECT ARRAY_TO_STRING(ARRAY['a','b','c'], ', '); -- 'a, b, c'REPEAT
文字列をN回繰り返します。
SELECT REPEAT('-', 30); -- 30 dashes
SELECT 'Hello' || REPEAT('!', 5); -- 'Hello!!!!!'パディングと保存
「パディングされているように見せる」目的で CHAR(n) を使用しないでください。空白で埋めた値として保存され、予期しない問題の原因になります。VARCHAR/TEXTを使用し、表示に必要なときだけSELECT時にパディングしてください。
振り返り
文字列の整理について学びました。入力時にはユーザー入力をトリミングし、出力時には表示用にパディングし、文字の対応付けが必要な場合はTRANSLATEを使用します。
確認問題
注文IDを6桁のゼロ埋め文字列(例:000123)として整形したいとします。どの関数を使用しますか?
よくある質問
「TRIM、LPAD、RPAD」レッスンは無料ですか?
はい。「TRIM、LPAD、RPAD」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、SQL Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 SQL Academyコースには全4レッスンが含まれています。
「TRIM、LPAD、RPAD」で何を学びますか?
TRIM/LTRIM/RTRIMで空白を除去し、LPADとRPADで固定幅の識別子をパディングします。 ブラウザで直接実行するハンズオンコードでSQL Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
SQL Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのSQL Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「TRIM、LPAD、RPAD」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このSQL Academyレッスンでコードを書いて実行できますか?
はい。すべてのSQL Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。