2

有一个具有重复值的列 ID (varchar)。其中一些值有尾随空格,我不想在选择时看到这些空格。

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

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

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

然后,

select distinct dbo.trim(MyID) as Trimmed
from dbo.SourceTbl

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

4

2 回答 2

7

试试这样的东西,也许?

SELECT DISTINCT trimmed
FROM (
    SELECT RTRIM(LTRIM(MyID)) as trimmed
    FROM dbo.SourceTbl
) A
于 2013-10-04T20:07:55.820 回答
0
SELECT Distinct  replace(Colum, ' ', '') AS Trimmed
FROM Table

DECLARE @String1 NVARCHAR(MAX)
SET @String1 = ' String '
SELECT @String1 OriginalString, RTRIM(LTRIM(@String1)) TrimmedValue
GO

创建一个函数来删除前导和尾随空格

CREATE FUNCTION dbo.TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO


SELECT DISTINCT dbo.TRIM(' String ')
GO
于 2013-10-04T20:07:22.257 回答