Sqlでデータをクリーニングする–空白をトリムする

データベースにデータをインポートする際に頻繁に問題になるのは、文字列の先頭または末尾に不要な空白があることです。

先頭と末尾の空白は、重複レコードを識別しようとするとき、文字列列のテーブルを結合しようとするとき、または単に特定の値を照会するときに問題を引き起こす可能性があります。

幸いなことに、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データベースに変換するとします。 また負荷データベースのテーブルからの広がります。,

元のスプレッドシートと新しいデータベーステーブルを比較して、負荷を確認します。 結果は本当によさそうです。

今、あなたは今までにされているどのように多くのおもちゃのアヒルを見つけたいです受信したので、データベースを照会します。

SELECT toy_name, COUNT(*)
FROM toys
WHERE toy_name = 'duck'
GROUP BY toy_name;Empty set (0.00 sec)

待って、何?! それは正しくない、レコードは返されませんか? データベースのTOYSテーブルを右に見ていると、toy_name=’duck’で11個のレコードが表示されます。,したがって、この便利な小さなSQLステートメントを実行して空白を表示します。

replace関数の詳細については、こちらをクリックしてください。

ああハ! これで、すべてのtoy_namesに先頭にスペースがあり、そのうちのいくつかには他の末尾の空白文字があります。,タブchar(9)、改行char(10)、キャリッジリターンchar(13)、およびスペースchar(32)のように、先頭および末尾の空白文字に対してTRIM関数を使用して一連のUPDATEステートメントを実行します。,P>

今、あなたは自信を持ってあなたのアヒルを数えることができます:

SELECT toy_name, COUNT(*)
FROM toys
WHERE toy_name = 'duck'
GROUP BY toy_name;

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です