データベースにデータをインポートする際に頻繁に問題になるのは、文字列の先頭または末尾に不要な空白があることです。
先頭と末尾の空白は、重複レコードを識別しようとするとき、文字列列のテーブルを結合しようとするとき、または単に特定の値を照会するときに問題を引き起こす可能性があります。
幸いなことに、SQL TRIM関数は、文字列からその厄介な先頭と末尾の空白を削除します。
空白は、文字列内の文字で、タイポグラフィにおける水平または垂直のスペースを表します。, 言い換えれば、タブ、改行、改行、そしてはい、スペースです。
空白には文字値があり、’A’、’B’、’C’には値があるのと同じように文字値があります。 印刷されたときに空白が常に表示されるとは限りません。
そして、他の文字と同じように、空白はASCIIテーブルに小数点以下の値を持ちます。 この小さな事実は、SQLコマンドを使用して空白文字を識別しようとしているときに非常に便利です。,
The TRIM Function
Safari Books online has a nice snippet on the TRIM command:
ANSI SQL Standard Syntax
TRIM( FROM ]
target_string
)
The default for the first parameter, LEADING | TRAILING | BOTH
, is ‘BOTH’.
The default for is a space char(32)
.,つまり、target_string
(唯一の必須パラメータ)のみを指定すると、すべての先頭と末尾のスペースがトリミングされます。
例
デフォルトでは、先頭と末尾のスペース文字の両方をトリムします。
SELECT ' Hello World ',
TRIM(' Hello World ');+-----------------+-------------------------+
| Hello World | TRIM(' Hello World ') |
+-----------------+-------------------------+
| Hello World | Hello World |
+-----------------+-------------------------+
注:SQL Server2016以前のバージョンのTRIM関数には、文字列からトリムする文字を指定する引数がありません。 先頭/末尾のスペース文字のみをトリミングします。
例
先頭のアスタリスク(*)文字のみを削除します。, パラメータとして一つだけ’*’が指定されていても、TRIMはいくつあるかにかかわらず、先頭のすべてのアスタリスク(*)を削除します。
SELECT '*** Hello World **',
TRIM(LEADING '*' FROM '*** Hello World **');+--------------------+---------------------------------------------+
| *** Hello World ** | TRIM(LEADING '*' FROM '*** Hello World **') |
+--------------------+---------------------------------------------+
| *** Hello World ** | Hello World ** |
+--------------------+---------------------------------------------+
空白のシナリオの例
玩具店の在庫レコードをスプレッドシートからrdbmsデータベースに変換するとします。 また負荷データベースのテーブルからの広がります。,
元のスプレッドシートと新しいデータベーステーブルを比較して、負荷を確認します。 結果は本当によさそうです。