declare @var nvarchar(500)='Software Development'
select @var as NotTrim
select LTRIM(RTRIM(@var)) as Trim
预期输出为“软件开发”(两个单词之间有一个单字)
最佳答案
尝试以下操作
SELECT
s,
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(s,' ',' ^'),'^ ',''),'^','')))
FROM (SELECT ' Q W E ' s) q
^
- 您可以使用字符串中未包含的任何符号。
这个方法是我在论坛 sql.ru
上找到的。
此方法将任意数量的空格替换为一个空格。这个方法我用过很多次,觉得效果很好。
你的例子
declare @var nvarchar(500)='Software Development'
select @var as NotTrim
select LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(@var,' ',' ^'),'^ ',''),'^',''))) as Trim
您可以逐步了解它是如何工作的
SELECT
s,
-- step 1 - add special char before to each spaces
REPLACE(s,' ',' ^'),
-- step 2 - delete special char and space after this special char
REPLACE(REPLACE(s,' ',' ^'),'^ ',''),
-- step 3 - delete special chars
REPLACE(REPLACE(REPLACE(s,' ',' ^'),'^ ',''),'^',''),
-- step 4 - delete start and end spaces if you need it
LTRIM(RTRIM(REPLACE(REPLACE(REPLACE(s,' ',' ^'),'^ ',''),'^','')))
FROM (SELECT ' Q W E ' s) q
关于sql - 如何删除SQL中两个单词之间的空格(更多两个空格),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47427303/