2017-04-05 55 views
1

我正在嘗試從沒有數據質量控制的源導入數據。我知道如何刪除/替換大多數東西,但是我遇到了包含單個`(反引號)的字段,我需要用NULL替換它。我需要刪除反引號,因爲我將數據從varchar字段轉換爲數字。我已經試過這個版本:用NULL更新字段包含單個`(反引號)

Update dbo.Sale 
Set Stamps = NULL 
where Stamps = '''' 
+1

你的代碼工作可能是,周圍有空間?試試'WHERE LTRIM(RTRIM(Stamps))='''''' – Shnugo

+0

如果這沒有幫助,試着找出,如果你看到的符號是一個普通的單引號accually:'SELECT CAST(Stamps AS VARBINARY(1) )FROM dbo.Sales'這應該顯示爲'0x27'(並且沒有其他),如果這真的不是別的,而是簡單的引號。 – Shnugo

+0

那麼我敢肯定,所有這些解決方案都可以工作,我搞砸了,它不是'它是'(反作用)。對不起,我得到一些咖啡因,戴上眼鏡,從後面拉頭。 – BRM

回答

0

可以使用CHAR(39)爲清晰起見:

UPDATE dbo.Sale 
SET Stamps = NULL 
WHERE Stamps = CHAR(39); 
0

這可能會幫助你

DECLARE @t TABLE (MyColumn VARCHAR(255)) 

INSERT INTO @t 
     (MyColumn) 
VALUES ('''' -- MyColumn - varchar(255) 
     ) 

SELECT * 
FROM @t 

UPDATE @t 
SET MyColumn = NULL 
WHERE MyColumn = CHAR(39) 

SELECT * 
FROM @t 

OR

UPDATE @t 
    SET MyColumn = NULL 
    WHERE MyColumn = ''''