2010-07-14 9 views
0

J'ai un très gros fichier CSV que j'ai importé dans une table sqlite. Il y a plus de 50 colonnes et j'aimerais trouver toutes les lignes où l'une des colonnes est nulle. Est-ce seulement possible? J'essaie juste de me sauver le temps d'écrire toutes les 50 colonnes différentes dans une clause where. Merci.sqlite: comment trouver toutes les lignes d'une table où toutes les colonnes sont nulles?

+1

Ça sent comme si vous aviez des groupes qui se répètent ... Voir http://en.wikipedia.org/wiki/1NF –

Répondre

0

C'est une question intéressante mais il est probablement plus rapide d'écrire un script rapide qui génère la ligne d'en-tête copier/coller de votre fichier CSV vers le script approprié.

Par exemple cela fonctionne dans 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

Non, pas sans curseur à l'aide DESCRIBE TABLE ou une technologie intermédiaire.

Votre meilleur pari serait de DEFAULT NULL les colonnes et ré-importer les données. Mais en fonction des types d'importation et de colonnes CSV, vous pouvez toujours obtenir des valeurs vides dans les colonnes.

Suce, mais il est probablement plus rapide de simplement copier et coller les commandes SQL. Le script serait réutilisable.

Questions connexes