7

我有一个名为 Account Type 的数据库,其中包含回车符和换行符(CHAR(10) 和 CHAR(13))。

当我搜索这个值时,我需要执行REPLACE如下所示的操作。以下代码工作正常。

SELECT AccountNumber,AccountType, 
  REPLACE(REPLACE(AccountType,CHAR(10),'Y'),CHAR(13),'X') FormattedText 
FROM Account 
WHERE AccountNumber=200
AND REPLACE(REPLACE(AccountType,CHAR(10),' '),CHAR(13),' ') LIKE 
'%Daily Tax Updates:  -----------------        Transactions%'

我的问题是——需要这样替换的其他字符(类似于 CHAR(10) 和 CHAR(13))是什么?

注意:该列的数据类型是VARCHAR.

注意:查询从 SQL Server Management Studio 运行

在此处输入图像描述

4

1 回答 1

8

可能还有嵌入的选项卡 ( CHAR(9)) 等。您可以使用以下内容找出需要替换的其他字符(我们不知道您的目标是什么):

DECLARE @var NVARCHAR(255), @i INT;

SET @i = 1;

SELECT @var = AccountType FROM dbo.Account
  WHERE AccountNumber = 200
  AND AccountType LIKE '%Daily%';

CREATE TABLE #x(i INT PRIMARY KEY, c NCHAR(1), a NCHAR(1));

WHILE @i <= LEN(@var)
BEGIN
  INSERT #x 
    SELECT SUBSTRING(@var, @i, 1), ASCII(SUBSTRING(@var, @i, 1));

  SET @i = @i + 1;
END

SELECT i,c,a FROM #x ORDER BY i;

您还可以考虑在这些数据进入数据库之前对其进行更好的清理。每次需要搜索或显示时都清理它不是最好的方法。

于 2013-02-12T15:50:46.713 回答