
SQL Server 2008環境です。
文字列の末尾の空白を一括して削除したくて、以下のようなクエリを書きました。
UPDATE TEST_TABLE
SET NAME = REPLACE(RTRIM(REPLACE(StoreBranchName, ' ', ' ')), ' ', ' ')
全角スペースを一度半角スペースにして、RTRIMをかけた後、最後に
半角スペースを全角に直すというものです。
しかし、これだと、元々半角スペースが入っていた場合、そっちまで全角スペースに
なってしまうため悩んでおります。
うまいやり方を教えていただけないでしょうか。
宜しくお願いします。
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
素直に
UPDATE TEST_TABLE
SET NAME = substring(StoreBranchName,1,len(StoreBranchName)-1)
where substring(StoreBranchName,len(StoreBranchName),1) = ' '
while @@rowcount > 0
begin
UPDATE TEST_TABLE
SET NAME = substring(StoreBranchName,1,len(StoreBranchName)-1)
where substring(StoreBranchName,len(StoreBranchName),1) = ' '
end
とでもすれば?
と思います。
説明:
末尾1文字が全角空白なら、文字列を末尾1文字を除く文字列に置き換える。
処理結果が0件になるまで繰り返す。
なお、全角空白、半角空白と続くと、半角空白より前は削除されません。
No.3
- 回答日時:
補足
先ほどの回答は可変長文字列の場合です。固定長の場合はNAMEをRTRIM(NAME)とします。
UPDATE TEST_TABLE
SET NAME=LEFT(RTRIM(NAME),LEN(RTRIM(NAME))-1)
where RTRIM(NAME) LIKE '% '
No.2
- 回答日時:
最初にNAMEにSETして
UPDATE TEST_TABLE SET NAME=StoreBranchName
以下の操作を右端の全角スペースが無くなるまで繰り返し実行すれば出来ます。
UPDATE TEST_TABLE SET NAME=LEFT(NAME,LEN(NAME)-1) where NAME LIKE '% '
No.1
- 回答日時:
SQL Serverで使用できる関数が分からないので、とりあえず考え方だけ。
その1
全角スペースを一度半角スペースにしてRTRIMをかけた後、その長さの分だけ元の文字列から取り出す。
その2
文字列の中に連続した半角スペース2個が含まれていないことが保証されるなら、
全角スペースを一度半角スペース2個にして、RTRIMをかけた後、半角スペース2個を全角に直す。
(連続した半角スペース2個が含まれているかもしれないなら、半角スペース3個とか4個とかで)
この回答への補足
ありがとうございます。
半角スペース2個にしてみましたが、動作的には同じく、
半角スペース1個も全角にしてしまっておりました…。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- PHP Postgresの特定のカラムからスペースを取る方法 1 2023/02/22 13:18
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Excel(エクセル) 【マクロ】フォルダを2つのモニターの定位置に並べたい 2 2022/09/02 01:14
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Word(ワード) スペースを1回押したら前回入力したのを最初に出るようにしたい 1 2023/06/10 14:34
- Excel(エクセル) 【VBA】ファイルパスに半角スペースが入ると、VBAが動かない 5 2022/08/04 20:52
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
select文のwhere句に配列を入れ...
-
INSERT文などの列名などの半角...
-
スペースを検索したい
-
顧客データベースを作る場合、...
-
WHERE条件の最終桁のスペースに...
-
ストアドの戻り値で配列を返す方法
-
SQLServer2005のストアドプロシ...
-
DTSパッケージについて
-
外部結合で取得した項目にNVL関数
-
あいまい検索で英文字の全角半...
-
SQLで特定の項目の重複のみを排...
-
フィルターかけた後、重複を除...
-
差し込み後、元データを変更し...
-
カーソル0件の時にエラーを発生...
-
エクセルで最後の文字だけ置き...
-
外部参照してるキーを主キーに...
-
INSERT文でフィールドの1つだ...
-
SELECT 文 GROUP での1件目を...
-
for whichの使い方
-
エクセルの関数について教えて...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スペースを検索したい
-
あいまい検索で英文字の全角半...
-
末尾の全角スペースの削除
-
顧客データベースを作る場合、...
-
ストアドの戻り値で配列を返す方法
-
select文のwhere句に配列を入れ...
-
SQLServer2005のストアドプロシ...
-
WHERE条件の最終桁のスペースに...
-
MYSQL 右埋め 半角スペース
-
外部結合で取得した項目にNVL関数
-
SQL SERVER 2005 にて全テーブ...
-
管理工学研究所のデーターベー...
-
Oracleのスペース文字について。
-
INSERT文などの列名などの半角...
-
SUBSTR関数の結果が予想と異なる
-
ORACLEの「DECODE」と同じ意味...
-
Trimの使い方
-
1つのテキストボックスに入力...
-
DTSパッケージについて
-
簡単なクエリーの高速化
おすすめ情報