Remplacer le vide ou une valeur NULLE à une valeur spécifique dans la RUCHE résultat de la requête
J'essaie de montrer une valeur par défaut, "les Autres", lorsque la requête ne retourne aucun résultat pour l'une des colonnes sélectionnées. Je vais vous montrer l'exemple.
Cette requête retourne une valeur vide pour os(agent) SO
(au premier rang):
select country, os(agent) SO, count(*) from clicks_data
where country is not null and os(agent) is not null
group by country, os(agent);
De sortie:
ZA 4
ZA Android 4
ZA Mac 8
ZA Windows 5
Au lieu de cela, je voudrais obtenir ce résultat:
ZA Others 4
ZA Android 4
ZA Mac 8
ZA Windows 5
Ma prochaine tentative a été cette requête, mais ce n'est pas vraiment de travail, soit:
select country, regexp_replace(os(agent),'','Others') SO, count(*) from clicks_data
where country is not null and os(agent) is not null
group by country, os(agent);
C'est le résultat:
ZA Others 4
ZA OthersAOthersnOthersdOthersrOthersoOthersiOthersdOthers 4
ZA OthersMOthersaOtherscOthers 8
ZA OthersWOthersiOthersnOthersdOthersoOtherswOtherssOthers 5
OriginalL'auteur Sebastian Loeb Sucre | 2015-05-17
Vous devez vous connecter pour publier un commentaire.
Utilisation
LENGTH()
pour vérifier la longueur de la valeur de la colonne. Il retourne > 0, si y est une valeur else return 0 pour le vide ou la valeur NULL.Également encadrer la valeur de la colonne dans
CASE WHEN ... END
blocLa requête finale peut ressembler à:
Espère que cela vous aidera!!!
Je n'ai pas assez de réputation 🙁
OriginalL'auteur Farooque
FUSIONNENT sera la mieux adaptée et la meilleure solution pour votre cas
Syntaxe:
FUSIONNER(VALEUR,DEFAULT_VALUE): la Fonction renvoie la valeur par défaut lorsque la valeur est nulle autre VALEUR;
Requête
Espère que ce serait la solution efficace à votre problème.
OriginalL'auteur Jignesh