Utiliser des fonctions VB dans des clauses SQL
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 si
Code:
select Prix from MaTable
me sort une colonne avec des valeurs vides (détectables par IsNothing je suppose), je souhaite que ces valeurs passent à zéro.
Sous Access, que je maîtrise mieux que VB.NET, la solution était simple :
Code:
Select nulltozero(Prix) from MaTable
où nulltozero était une fonction définie par :
Code:
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 |
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.
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.