首页 > 解决方案 > T SQL 从 SELECT 中删除 ASCII 字符

问题描述

我正在使用 SQL Server 2014。

我有下面的 SQL 语句来查找不匹配的记录。但是,它现在可以正常工作,因为 OPENQUERY 中的字段“dsc”实际上在字符串值之前包含一个水平制表符(ASCII 字符 009):

SELECT [E_Code]
FROM [Person] P
WHERE P.E_Code NOT IN (
        SELECT dsc
        FROM OPENQUERY(svr01, 'select "dsc" from TST.eth')
        )

如何从 dsc 字段中删除 ASCII char 009?我试过 LTRIM 无济于事。

谢谢。

标签: sqlsql-servertsqlopenquerynotin

解决方案


DECLARE @str VARCHAR(20) = CONCAT('This is a tab--> ', '<--');
SELECT @str, REPLACE(@str, CHAR(9), '');


SELECT [E_Code]
FROM [Person] P
WHERE P.E_Code NOT IN (
        SELECT REPLACE(dsc, CHAR(9), '')
        FROM OPENQUERY(svr01, 'select "dsc" from TST.eth')
    )

推荐阅读