1

私はテーブルを持っておりtest( ID Numeric(11,0), report varchar(255) ) 、データは以下に見えます

1   ,Age,,,,,,family_status,,,,,,
2   ,,,,,,,,retaliation,hostile environment,,,,
3   ,,,,,,,,,,,,,
4   ,,,,,,,,retaliation,,,,,
5   ,,,,,,,,,hostile environment,,,,
6   ,Age,,,,,,,,,,,,
7   ,,,,national_origin,,,,,,,,,
8   Sex,,,,,,,,,,,,,
9   ,,,,national_origin,,disability,,retaliation,,,,,
10  Sex,,,,,,,,retaliation,,,,,
11  ,,,,,,,,

そして、データが見えるように、余分なコンマを削除するために他のデータスクライブを置き換えるか使用して、このテーブルを更新したいと思います

1   Age,family_status
2   retaliation,hostile environment
3   
4   retaliation
5   hostile environment
6   Age
7   national_origin,
8   Sex
9   national_origin,disability,retaliation
10  Sex,retaliation
11  

以下のステートメントを使用しようとしましたが、すべてのコンマをチェックして削除するようにループする方法がわかりません

UPDATE table test SET report = replace(report , ',,', ',')
4

1 に答える 1

2

これを 1 回限りのタスクとして (繰り返し使用するスクリプト化されたプロセスではなく) 実行している場合は、0 行が更新されるまで、このクエリを繰り返し実行することができます。

UPDATE table test SET report = replace(report , ',,', ',')
WHERE report like '%,,%'

これを何度も行う必要がある場合、またはプログラムに入れる必要がある場合は、手続き型 (非 SQL コード) を使用して、より適切なテキスト操作コマンドがある場所で置換を行うことをお勧めします。

それが気に入らない場合は、文字列から繰り返しスペースを置き換えるという同様の問題について私が書いたこのブログ記事を参照してください。

于 2013-04-15T23:17:00.890 に答える