在“删除”尾随空格后选择不重复

Ste*_*eam 1 sql sql-server sql-server-2008

列ID(varchar)具有重复的值。其中一些值具有尾部空格,当我执行选择时我不想看到它们。

我想做一个“删除尾随空格后选择不同”。

我尝试了下面的代码,但没有帮助。我仍然在输出中留下尾随空格。

CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
SELECT dbo.TRIM(' String ')
GO
Run Code Online (Sandbox Code Playgroud)

然后,

select distinct dbo.trim(MyID) as Trimmed
from dbo.SourceTbl
Run Code Online (Sandbox Code Playgroud)

代码取自 -http://blog.sqlauthority.com/2013/01/23/sql-server-trim-function-to-remove-leading-and-trailing-spaces-of-string-sql-in-sixty-秒040视频/

小智 5

尝试这样的事情吧?

SELECT DISTINCT trimmed
FROM (
    SELECT RTRIM(LTRIM(MyID)) as trimmed
    FROM dbo.SourceTbl
) A
Run Code Online (Sandbox Code Playgroud)