0Pricing
SQL Academy · レッスン

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フィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. 連結:||とCONCAT
  2. UPPER、LOWER、SUBSTRING、REPLACE
  3. TRIM、LPAD、RPAD
  4. 全文検索入門(tsvector、to_tsquery)
← SQL Academyに戻る