を使用してhandphone番号で二occuringスペースを削除するには?どのようにSQL Serverのクエリ
0
私のhandphone番号は123 456 789は私がどのようにこれを達成するために123 456789. として出力を必要です。たとえば、
A
答えて
3
をここで論理的なアプローチは、その後、最初のスペースまで、最初のスペースの後、CHARINDEX
とSUBSTRING
を使用して2つのセクションに文字列を分割することですREPLACE
最初のスペースの後の文字列、CONCAT
を使用して文字列を戻します。例えば
DECLARE @s VARCHAR(15) = '123 456 789';
SELECT BeforeSpace = SUBSTRING(@s, 1, CHARINDEX(' ', @s)),
AfterSpace = SUBSTRING(@s, CHARINDEX(' ', @s), LEN(@s)),
ReplaceAfterSpace = REPLACE(SUBSTRING(@s, CHARINDEX(' ', @s), LEN(@s)), ' ', ''),
Result = CONCAT(SUBSTRING(@s, 1, CHARINDEX(' ', @s)),
REPLACE(SUBSTRING(@s, CHARINDEX(' ', @s), LEN(@s)), ' ', ''));
しかし、それはREPLACE
を使用して、すべてのスペースを削除し、最初のものは、もともとSTUFF
を使用していたスペースを再挿入するために、実際に簡単です:
DECLARE @s VARCHAR(15) = '123 456 789';
SELECT STUFF(REPLACE(@s, ' ', ''), CHARINDEX(' ', @s), 0, ' ');
すべてのことは、その後行うために残されていますスペースがない場合はチェックしてください。全例:
DECLARE @T TABLE (s VARCHAR(15));
INSERT @T VALUES ('123 456 789'), ('123456789'), ('123456 789'), ('123 4 5 6 789');
SELECT Original = s,
Method1 = CASE WHEN CHARINDEX(' ', s) = 0 THEN s
ELSE CONCAT(SUBSTRING(s, 1, CHARINDEX(' ', s)),
REPLACE(SUBSTRING(s, CHARINDEX(' ', s), LEN(s)), ' ', ''))
END,
Method2 = CASE WHEN CHARINDEX(' ', s) = 0 THEN s
ELSE STUFF(REPLACE(s, ' ', ''), CHARINDEX(' ', S), 0, ' ')
END
FROM @T;
出力
Original Method1 Method2
-------------------------------------------
123 456 789 123 456789 123 456789
123456789 123456789 123456789
123456 789 123456 789 123456 789
123 4 5 6 789 123 456789 123 456789
あなたが最初から離れて、すべてのスペースを置き換えることを、私はあなたが言うとき、あなたは第二のスペースを置き換えることを前提に作られているNB、 。私の前提が間違っていて、それを置き換えるだけの2番目のスペースであれば、これは動作しません。
1
これはそれを行う必要があります。
DECLARE @number AS NVARCHAR(12);
SELECT @number = '123 456 789';
SELECT STUFF(@number, CHARINDEX(' ', @number, CHARINDEX(' ', @number) + 1), 1, '') AS REMOVED_SECOND_SPACE;
0
DECLARE @s VARCHAR(12) = '111 222 333'
SELECT SUBSTRING(@s, 0, LEN(@s) - CHARINDEX(' ', REVERSE(@s)) + 1)
+ SUBSTRING(@s, LEN(@s) - CHARINDEX(' ', REVERSE(@s)) + 2, CHARINDEX(' ', REVERSE(@s)));
0
まあ、他の回答に加えて、私は、あなたが宇宙に続く3桁の数字を持つようにしたいという、仮定に基づいて、最も単純に投稿します、その後、残り:
declare @x1 varchar(15), @x2 varchar(15), @x3 varchar(15), @x4 varchar(15), @x5 varchar(15)
set @x1 = '123456789'
set @x2 = '123 456789'
set @x3 = '123 456 789'
set @x4 = '123456 789'
set @x5 = '1 2 3 4 5 6 7 8 9'
select stuff(replace(@x1, ' ', ''), 4, 0, ' ')
select stuff(replace(@x2, ' ', ''), 4, 0, ' ')
select stuff(replace(@x3, ' ', ''), 4, 0, ' ')
select stuff(replace(@x4, ' ', ''), 4, 0, ' ')
select stuff(replace(@x5, ' ', ''), 4, 0, ' ')
すべての出力は次のようになります同じ:123 456789
。
関連する問題
- 1. 選択は、私はのようにSQL Serverのクエリ持つSQL Serverの列
- 2. どのようにOracleとSQL Serverの
- 3. どのようにSQL Serverの
- 4. は、どのようにSQL Serverの
- 5. どのようにSQL Serverの
- 6. SQL ServerのSQLクエリ
- 7. どのように、SQL Server Management Studioで
- 8. SQL Serverの:クエリ
- 9. SQL Server:クエリによるデータベースダイアグラムの作成
- 10. どのようにSQLクエリでグループ内
- 11. どのようにLINQ 2 SQLクエリ
- 12. どのように単純なSQLクエリ
- 13. DjangoのSQLクエリのSQL Server
- 14. SQL Server 2005でクエリの結果をどのようにローテーションできますか?
- 15. SQL Serverは次のクエリをどのように処理しますか?
- 16. LINQクエリへのSQL Serverクエリ
- 17. SQL Serverの - ピボットテーブル、クエリ
- 18. SQL Serverのクエリが
- 19. VBA SQL Serverのクエリ
- 20. クエリPostgreSQLのSQL Server
- 21. OracleのクエリにSQL Serverクエリを変換
- 22. SQL Serverの - 私はこのようなクエリ持っ
- 23. 私はこのようなクエリを持つSQL Serverのビュー
- 24. SQL Serverクエリ
- 25. SQL-Serverクエリ
- 26. クロスタブSQL Serverクエリ
- 27. SQL Server 2014クエリ
- 28. SQL Serverクエリ
- 29. エラーSQL Serverクエリ
- 30. SQL Serverクエリは