sqlite: как найти все строки в таблице, где ЛЮБОЙ из столбцов нулевой? - PullRequest
0 голосов
/ 14 июля 2010

У меня есть очень большой файл CSV, который я импортировал в таблицу sqlite. Есть более 50 столбцов, и я хотел бы найти все строки, где любой из столбцов является нулевым. Это вообще возможно? Я просто пытаюсь сэкономить время написания всех 50 различных столбцов в предложении where. Спасибо.

Ответы [ 2 ]

0 голосов
/ 14 июля 2010

Нет. Не без курсора, использующего DESCRIBE TABLE или промежуточную технологию.

Лучше всего было бы DEFAULT NULL столбцы и повторно импортировать данные. Но в зависимости от импорта CSV и типов столбцов в столбцах все еще могут быть пустые значения.

Отстой, но, вероятно, быстрее просто скопировать и вставить команды SQL. Сценарий можно использовать повторно.

0 голосов
/ 14 июля 2010

Это интересный вопрос, но, вероятно, быстрее написать сценарий, который генерирует ваши преобразования, которые копируют / вставляют строку заголовка из 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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...