Tsql T-SQL修剪不起作用-在结果上留空格

Tsql T-SQL修剪不起作用-在结果上留空格,tsql,trim,Tsql,Trim,我有一个应用ltrim和rtrim的微调功能 CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX)) RETURNS VARCHAR(MAX) BEGIN RETURN LTRIM(RTRIM(@string)) END GO 我执行以下查询: SELECT distinct dbo.trim([subject]) as subject FROM [DISTR] 结果包含如下行: "A" "A " "B" ... 我认为这些字符可能不是空格,但当我得

我有一个应用ltrim和rtrim的微调功能

CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
我执行以下查询:

SELECT distinct dbo.trim([subject]) as subject
FROM [DISTR]
结果包含如下行:

"A"
"A  "
"B"
...
我认为这些字符可能不是空格,但当我得到ascii码时,它返回32,这是空格的代码

我唯一的猜测是,我不得不将数据库的拼图更改为:SQL\u Latin1\u General\u CP1\u CI\u AI

这就是问题所在吗?有什么想法吗?
谢谢

也许您的字段包含的空间不止一个。记住,than“”可以是空格、制表符和。使用或构建使用正则表达式的trim的CLR实现来匹配它是可能的“实际结果如何?或者是格式化?我想引号是用来显示单个字符串的外观,而不是字符串的一部分?我建议包含字符串的二进制表示形式,这会给您带来问题。类似于select中的
master.dbo.fn\u varbintohexstr(CAST([subject]AS VARBINARY))
的内容应该可以完成此操作。无法复制。请为表[Disr]提供DDL和insert语句。请指定sql server的版本