7

キャリッジ リターンと改行文字 (CHAR(10) と CHAR(13)) を含む Account Type という名前のデータベース ファイルがあります。

この値を検索するときは、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 に答える