如何检测空字段?

时间:2013-08-06 08:10:40

标签: sql sql-server-2008 string

我有一个列(nvarchar),它有一些无意义的数据,我正在尝试清理。我想要做的是删除所有空白字段,只有字段包含文本或数字。到目前为止我尝试了什么:

DELETE FROM myTable WHERE col='' OR col=' ' OR LEN(col)=0 OR LTRIM(RTRIM(col))=''

但是,仍有一些空白字段。其中一些是这些(单引号和逗号不包括在内,我写它们以显示它们的起点和终点)

'','','

','

2 个答案:

答案 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,'.',''),'''',''),'"',''),',','')
            )
        )=''