运行以下查询:
SELECT DISTINCT [RULE], LEN([RULE]) FROM MYTBL WHERE [RULE]
LIKE 'Trademarks, logos, slogans, company names, copyrighted material or brands of any third party%'
列数据类型为 NCHAR(120),使用的排序规则为 SQL_Latin1_General_CP1_CI_AS
最后插入一个额外的前导空格。但是使用 RTRIM 功能,我也无法修剪额外的空间。我不确定在这里插入了哪种类型的前导空格(编码)。
除了RTRIM之外,你可以建议其他一些替代方案,以便在列 NCHAR 时最后消除额外的空白区域。
以下是我已经尝试过的事情:
更新问题 请从这里下载数据库TestDB
请使用以下查询作为参考:
SELECT DISTINCT [RULE], LEN([RULE]) FROM [TestDB].[BI].[DimRejectionReasonData]
WHERE [RULE]
LIKE 'Trademarks, logos, slogans, company names, copyrighted material or brands of any third party%'
答案 0 :(得分:0)
字符串中可能有non-breaking space
nchar(160)。
您可以将其转换为简单空格,然后使用通常的trim
函数
LTRIM(RTRIM(REPLACE([RULE], NCHAR(160), ' ')))
如果是unicode空间
LTRIM(RTRIM(REPLACE(RULE, NCHAR(0x00A0), ' ')))
答案 1 :(得分:0)
我想这就是你要找的东西(不确定)。试试这种方法
SELECT REPLACE(REPLACE([RULE], CHAR(13), ''), CHAR(10), '')
注意:仅供参考,请参阅这些链接以便更好地理解。
答案 2 :(得分:0)
将类型nchar
更改为varchar
,它将返回没有多余空间的结果