列ID(varchar)具有重复值。其中一些值具有尾随空格,当我进行选择时,我不希望看到这些空格。
我想在删除尾随空格后执行“select distinct”。
我尝试了下面的代码并没有帮助。我仍然在输出中得到尾随空格。
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
答案 0 :(得分:5)
尝试这样的事,也许?
SELECT DISTINCT trimmed
FROM (
SELECT RTRIM(LTRIM(MyID)) as trimmed
FROM dbo.SourceTbl
) A
答案 1 :(得分:0)
您是否尝试创建使用REPLACE(@string,'','')的函数? 这应该具有相同的效果(用空字符串替换空格)。
您也可以尝试在SELECT语句中使用RTRIM或REPLACE函数,而不是创建用户定义的函数。
答案 2 :(得分:-1)
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