【问题标题】:sqlite: how to find all rows in a table where ANY of the columns are null?sqlite:如何查找表中任何列都为空的所有行?
【发布时间】:2010-07-14 11:16:53
【问题描述】:

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

【问题讨论】:

标签: database sqlite


【解决方案1】:

这是一个有趣的问题,但编写一个快速脚本可能会更快,该脚本可以将复制/粘贴的标题行从 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();
}

【讨论】:

    【解决方案2】:

    没有。并非没有使用DESCRIBE TABLE 或中间技术的光标。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-05
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多