2017-06-23 1 views
0

Remplacer les valeurs NULL avec juste un blancEst-il possible de remplacer nulle dans le cas où je ne sais pas le nom de domaine comme simplement en utilisant * dans requête de sélection

MS SQL

  • Sélectionnez IsNull (ColName, '') Comme ColName De TableName

MySQL

  • Sélectionnez IFNULL (ColName, '') Comme ColName De TableName

IFNULL (expr1, expr2)

Si expr1 est NULL, retourne IFNULL() expr1; sinon, il renvoie expr2. IFNULL() renvoie une valeur numérique ou chaîne, en fonction du contexte dans lequel il est utilisé.

Sans connaître la colonne na e comment puis-je faire cela?

+0

Il suffit d'écrire toutes les colonnes séparément, vous ne pouvez pas attacher la fonction à plusieurs colonnes aussi simplement que 'select *' –

+0

N'est-il pas étrange que vous vouliez imposer une logique pour colonne inconnue (à vous)? – ajreal

+0

@OtoShavadze sans écrire nom_colonne –

Répondre

0

Si vous ne connaissez pas les noms de colonnes, vous devez d'abord obtenir toutes les colonnes de cette table et générer dynamiquement SELECT requête, .: par exemple

SELECT column_name 
FROM information_schema.columns 
WHERE table_name = 'mytable'; 

Cela vous donnera les colonnes. Vous pouvez parcourir la liste, construire la requête SELECT avec la virgule séparée IFNULL(col, '') et l'exécuter.

Une autre approche serait d'utiliser SELECT * dans la requête et de gérer les valeurs null/empty dans la couche interface utilisateur/service.

+0

Cela va devenir double mal de tête et double tâche et prend beaucoup de temps en exécutant la requête 2 fois –

+0

Ajout d'une autre approche, cependant, ce sont les seuls moyens d'y parvenir. –