我有一个列(nvarchar),它有一些无意义的数据,我正在尝试清理。我想要做的是删除所有空白字段,只有字段包含文本或数字。到目前为止我尝试了什么:
DELETE FROM myTable WHERE col='' OR col=' ' OR LEN(col)=0 OR LTRIM(RTRIM(col))=''
但是,仍有一些空白字段。其中一些是这些(单引号和逗号不包括在内,我写它们以显示它们的起点和终点)
'','','
','
答案 0 :(得分:2)
这将完全相同:
DELETE
FROM myTable
WHERE col=''
如果您仍然有行,那是因为您有其他字符看起来不像换行符
这将删除文本
中没有字母数字字符的所有行DELETE
FROM myTable
WHERE col not like '%[0-9a-zA-Z]%'
您可以添加更多字符。例如:
[0-9a-zA-Z,'']
< ---在不应删除的行中添加引号和逗号
答案 1 :(得分:1)
你可以用空白替换额外的标志,然后如果它们是'''则左右修剪然后删除 像这样:
DELETE FROM myTable
WHERE LEN(col)=0
OR
LTRIM(
RTRIM(
REPLACE(REPLACE(REPLACE(REPLACE(col,'.',''),'''',''),'"',''),',','')
)
)=''