sqlite:如何查找表中任何列为空的所有行?

时间:2010-07-14 03:04:12

标签: database sqlite

我有一个非常大的CSV文件,我导入到sqlite表中。有超过50列,我想找到任何列为空的所有行。这甚至可能吗?我只是想节省自己在where子句中写出所有50个不同列的时间。感谢。

2 个答案:

答案 0 :(得分: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();
}

答案 1 :(得分:0)

没有。不是没有使用DESCRIBE TABLE或中间技术的游标。

您最好的选择是DEFAULT NULL列并重新导入数据。但是,根据CSV导入和列类型,您可能仍会在列中获得空值。

很糟糕,但是复制和粘贴SQL命令可能更快。该脚本可以重复使用。