1
我正在嘗試從沒有數據質量控制的源導入數據。我知道如何刪除/替換大多數東西,但是我遇到了包含單個`(反引號)的字段,我需要用NULL替換它。我需要刪除反引號,因爲我將數據從varchar字段轉換爲數字。我已經試過這個版本:用NULL更新字段包含單個`(反引號)
Update dbo.Sale
Set Stamps = NULL
where Stamps = ''''
我正在嘗試從沒有數據質量控制的源導入數據。我知道如何刪除/替換大多數東西,但是我遇到了包含單個`(反引號)的字段,我需要用NULL替換它。我需要刪除反引號,因爲我將數據從varchar字段轉換爲數字。我已經試過這個版本:用NULL更新字段包含單個`(反引號)
Update dbo.Sale
Set Stamps = NULL
where Stamps = ''''
可以使用CHAR(39)
爲清晰起見:
UPDATE dbo.Sale
SET Stamps = NULL
WHERE Stamps = CHAR(39);
這可能會幫助你
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 = ''''
你的代碼工作可能是,周圍有空間?試試'WHERE LTRIM(RTRIM(Stamps))='''''' – Shnugo
如果這沒有幫助,試着找出,如果你看到的符號是一個普通的單引號accually:'SELECT CAST(Stamps AS VARBINARY(1) )FROM dbo.Sales'這應該顯示爲'0x27'(並且沒有其他),如果這真的不是別的,而是簡單的引號。 – Shnugo
那麼我敢肯定,所有這些解決方案都可以工作,我搞砸了,它不是'它是'(反作用)。對不起,我得到一些咖啡因,戴上眼鏡,從後面拉頭。 – BRM