2013-08-06 61 views
1

我有一列(nvarchar),它有一些無意義的數據,我試圖做一個清理。我想要做的是刪除所有空白字段,並只有文本或數字字段。我到目前爲止的嘗試:如何檢測空字段?

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

但是,仍然有一些空白字段。他們中有些人是這樣的(單引號和逗號不包括在內,我寫出來,以顯示他們開始和結束)

「     」,「                 」,'

」, '

'

+0

我已經寫了,nvarchar的 – Kuzgun

+0

什麼是「好」的數據,如該列?我有一個函數,基本上從字符串中刪除所有空格和奇怪的字符串,可以幫助你,但取決於你想要保留的數據 –

+0

你試過IsNull空白字段? –

回答

2

這會做完全一樣的:

DELETE 
FROM myTable 
WHERE col='' 

如果您仍然有行,那是因爲你有沒有出現像換行

這將刪除不包含字母數字字符在文本中的所有行其他字符

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

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

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

< ---加引號和逗號不應該被刪除

1

你可以替換空白額外的跡象,然後修剪掉左,右行,如果他們=「」然後刪除 這樣的:

DELETE FROM myTable 
WHERE LEN(col)=0 
     OR 
     LTRIM(
     RTRIM(
       REPLACE(REPLACE(REPLACE(REPLACE(col,'.',''),'''',''),'"',''),',','') 
      ) 
     )='' 
+0

,你可以放棄ltrim和rtrim結果相同 –