2010-07-14 86 views
0

我有一個非常大的CSV文件,我導入到一個sqlite表。有超過50列,我想找到任何列的空列的所有行。這甚至有可能嗎?我只是試圖爲自己節省寫出where子句中所有50個不同列的時間。謝謝。sqlite:如何查找表中任何列爲空的所有行?

+1

像你一樣的氣味有重複的團體......見http://en.wikipedia.org/wiki/1NF – 2010-07-14 03:49:08

回答

0

這是一個有趣的問題,但編寫一個快速腳本可能會更快,該腳本會生成將CSV標題行復制/粘貼到相應腳本的轉換器。

例如這個作品在LINQPad(C#)

void Main() 
{ 
string input = "adasda|sadasd|adasd|"; 
char delim = '|'; 
StringBuilder sql = new StringBuilder(); 
sql.AppendLine("SELECT * FROM table WHERE "); 
foreach (string s in input.Split(delim)) 
{ 
    if (!String.IsNullOrEmpty(s)) 
    sql.Append(s).AppendLine(" IS NULL OR "); 
} 
sql.ToString().Trim('\r', '\n', 'O', 'R',' ').Dump(); 
} 
0

No.無而不使用DESCRIBE TABLE或光標的中間技術。

你最好的辦法是到DEFAULT NULL列並重新導入數據。但取決於CSV導入和列類型,您仍然可以在列中獲得空值。

很糟糕,但是複製和粘貼SQL命令可能會更快。該腳本將是可重用的。

相關問題