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