Bonjour,
J'ai un cas particulier de requête avec jointures qui me génère des cases vides dans une colonne supposée comporter des valeurs numériques.
Pour la suite de mon projet, j'ai besoin que ces valeurs vides soient remplacées par des 0.
Par exemple sime sort une colonne avec des valeurs vides (détectables par IsNothing je suppose), je souhaite que ces valeurs passent à zéro.
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part select Prix from MaTable
Sous Access, que je maîtrise mieux que VB.NET, la solution était simple :
Code sql : Sélectionner tout - Visualiser dans une fenêtre à part Select nulltozero(Prix) from MaTable
où nulltozero était une fonction définie par :
J'ai bien tenté la même méthode en adaptant cette fonction en langage VB.NET mais le problème n'est pas la syntaxe de la fonction mais le fait qu'elle soit reconnue dans la SQL ce qui n'est pas le cas ; en effet, un message d'erreur apparaît disant que "nulltozero" n'est pas reconnue par SQL Server Compact Edition.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 Function NullToZero(UneValeur As Variant) As Variant ' Argument(s) : une valeur de type Variant ' Action : convertit les valeurs Null en zéros. ' Valeur(s) renvoyée(s) : une valeur non-Null ou zéro If IsNull(UneValeur) Then NullToZero = 0 Else NullToZero = UneValeur End If End function
Donc ma question est générale :
- Existe-t-il un moyen d'utiliser des fonctions dans une requête SQL ?
Nota : le cas de syntaxe SQL que j'ai donné pour exemple est trivial. Il est bien entendu que ma syntaxe réelle est bien plus compliquée.
Partager