1

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

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

但是,仍然有一些空白字段。其中一些是这样的(不包括单引号和逗号,我写它们是为了显示它们的开始和结束位置)

' ' , ' ', '

', '

'

4

2 回答 2

2

这将完全一样:

DELETE 
FROM myTable 
WHERE col=''

如果您仍然有行,那是因为您还有其他看起来不像换行符的字符

这将删除文本中没有字母数字字符的所有行

DELETE 
FROM myTable 
WHERE col not like '%[0-9a-zA-Z]%'

您可以添加更多字符。例子:

[0-9a-zA-Z,''] 

<--- 在不应删除的行中添加引号和逗号

于 2013-08-06T08:14:13.667 回答
1

您可以用空白替换多余的符号,然后从左右修剪,如果它们是 = '' 然后像这样删除:

DELETE FROM myTable 
WHERE LEN(col)=0 
        OR 
       LTRIM(
        RTRIM(
                REPLACE(REPLACE(REPLACE(REPLACE(col,'.',''),'''',''),'"',''),',','')
            )
        )='' 
于 2013-08-06T08:24:48.603 回答