Les blocs individuels permettent d’effectuer les tâches suivantes à l’aide des mots-clés ci-dessous :
À l’exception des 3 premiers éléments :
Pour effacer la sélection, utilisez la clause
CLEAR SELECTION
Pour définir une variable scalaire, utilisez le mot-clé LET, par exemple
LET <variable name> = <value>
Pour définir une variable de liste, utilisez le mot-clé LIST, par exemple
LIST <variable name> = <value 1>, <value 2>, <value 3>, <value n>
Pour sélectionner des objets, utilisez le mot-clé SELECT, par exemple
SELECT
SELECT ALL
SELECT SELECTED
SELECT FROM pipe
SELECT ALL FROM pipe
SELECT SELECTED FROM pipe
SELECT WHERE x > 0
SELECT ALL WHERE x > 0
SELECT SELECTED WHERE x > 0
SELECT FROM pipe WHERE diameter > 250
SELECT ALL FROM pipe WHERE diameter > 250
SELECT SELECTED FROM pipe WHERE diameter > 250
Si vous effectuez une sélection dans la table actuelle avec le mode de sélection actuel, le mot-clé SELECT peut être omis, par exemple
x > 0
Pour désélectionner des objets, utilisez le mot-clé DESELECT
DESELECT
DESELECT ALL
DESELECT SELECTED
DESELECT FROM pipe
DESELECT ALL FROM pipe
DESELECT SELECTED FROM pipe
DESELECT WHERE x > 0
DESELECT ALL WHERE x > 0
DESELECT SELECTED WHERE x > 0
DESELECT FROM pipe WHERE diameter > 250
DESELECT ALL FROM pipe WHERE diameter > 250
DESELECT SELECTED FROM pipe WHERE diameter > 250
Pour supprimer des objets, utilisez le mot clé DELETE
DELETE
DELETE ALL
DELETE SELECTED
DELETE FROM pipe
DELETE ALL FROM pipe
DELETE SELECTED FROM pipe
DELETE WHERE x > 0
DELETE ALL WHERE x > 0
DELETE SELECTED WHERE x > 0
DELETE FROM pipe WHERE diameter > 250
DELETE ALL FROM pipe WHERE diameter > 250
DELETE SELECTED FROM pipe WHERE diameter > 250
Pour modifier la valeur des champs ou des variables, utilisez le mot clé SET. Il est possible de définir plusieurs valeurs à la fois en séparant les affectations par des virgules « , ».
SET x = x – 100, y = y – 100
SET x = x – 100, y = y – 100 WHERE ground_level > 20
Pour remplacer la table et le mode de sélection actuels, utilisez le mot-clé UPDATE.
UPDATE ALL SET x = x – 100, y = y - 100
UPDATE SELECTED SET x = x – 100, y = y - 100
UPDATE node SET x = x – 100, y = y - 100
UPDATE ALL node SET x = x – 100, y = y - 100
UPDATE SELECTED node SET x = x – 100, y = y – 100
UPDATE ALL SET x = x – 100, y = y – 100 WHERE ground_level > 20
UPDATE SELECTED SET x = x – 100, y = y – 100 WHERE ground_level > 20
UPDATE node SET x = x – 100, y = y - 100 WHERE ground_level > 20
UPDATE ALL node SET x = x – 100, y = y – 100 WHERE ground_level > 20
UPDATE SELECTED node SET x = x – 100, y = y – 100 WHERE ground_level > 20
Pour sélectionner un certain nombre de valeurs, utilisez le mot-clé SELECT, suivi des valeurs que vous souhaitez afficher, séparées par des virgules, par exemple
SELECT node_id, MAX(us_links.conduit_width), MIN(us_links.conduit_width)
Il est possible de remplacer le titre donné à la colonne dans le tableau ou le fichier CSV en utilisant le mot-clé AS, par exemple
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS mymin
Le titre peut se présenter sans guillemets, auquel cas il ne peut pas y avoir d’espaces ou de caractères non alphanumériques, ou avec des guillemets, par exemple
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS '£% my min'
Il est possible de remplacer la table à l’aide du mot-clé FROM, par exemple
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS mymin FROM node
Les résultats s’affichent sous forme de tableau, sauf si un fichier est spécifié à l’aide du mot-clé INTO FILE, par exemple
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS mymin FROM node INTO FILE 'c:\temp\mynodes.csv'
Il est possible de filtrer les objets qui feront l’objet d’un rapport à l’aide du mot-clé WHERE, par exemple
SELECT node_id AS title, MAX(us_links.conduit_width) AS mymax, MIN(us_links.conduit_width) AS mymin FROM node WHERE MAX(us_links.conduit_width) > 450
Il est possible de calculer les résultats agrégés sur des groupes d’objets à l’aide du mot-clé GROUP BY, par exemple
SELECT MAX(MAX(us_links.conduit_width)) GROUP BY system_type
Il est possible de limiter les résultats agrégés rapportés à l’aide du mot-clé HAVING, par exemple
SELECT MAX(MAX(us_links.conduit_width)) GROUP BY system_type HAVING MAX(MAX(us_links.conduit_width)) < 1000
Le tableau ci-dessous répertorie la syntaxe SQL prise en charge dans ce produit Autodesk. Des remarques supplémentaires sont disponibles ci-dessous.
Pour en savoir plus sur l’utilisation de SQL et les fonctions prises en charge, vous pouvez consulter le document technique sur le langage SQL dans InfoWorks WS Pro.
Le texte du commentaire est ignoré lorsque la requête est exécutée. Les commentaires peuvent être spécifiés soit par ligne (où toute la ligne après la syntaxe du commentaire est traitée comme du texte de commentaire), soit par bloc (où un bloc peut être spécifié comme faisant partie d’une ligne, jusqu’à s’étendre sur plusieurs lignes). Le texte du commentaire est syntaxiquement mis en surbrillance en vert dans la boîte de dialogue SQL.
| Syntaxe | Description |
|---|---|
| // | Ligne de commentaire |
| /* | Bloc de commentaire : début du bloc de texte de commentaire |
| */ | Bloc de commentaire : fin du bloc de texte de commentaire |
| Syntaxe | Description |
|---|---|
|
INT(number) |
Partie entière d’un nombre. |
|
FLOOR(number) |
Entier le plus proche inférieur ou égal au paramètre. |
|
CEIL(number) |
Entier le plus proche supérieur ou égal au paramètre. |
| FIXED(number to convert, number of decimal places) | Étant donné un nombre et un nombre de décimales compris entre 0 et 8, convertissez le nombre en chaîne de caractères avec ce nombre de décimales, en arrondissant à l’unité supérieure ou inférieure selon le cas. Si le nombre de décimales est égal à 0, la chaîne ne contient pas de séparateur décimal. |
|
ABS(x) |
Renvoie la valeur absolue de x. Vous trouverez ci-dessous quelques exemples : La fonction renvoie x si x >= 0, -x Sinon |
|
LEFT(s,n) |
Renvoie les premiers n caractères de la chaîne sou la chaîne entière si n est supérieur à la longueur de la chaîne |
|
RIGHT(s,n) |
Renvoie les derniers n caractères de la chaîne sou la chaîne entière si n est supérieur à la longueur de la chaîne |
|
MID(s,n,m) |
Renvoie la sous-chaîne de la chaîne s contenant m caractères commençant à la position n, en comptant à partir de 1 comme position de départ |
|
LEN(s) |
Renvoie la longueur de la chaîne s |
|
IIF(x,y,z) |
Si l’expression x est vraie, renvoie alors y, sinon renvoie z |
| NVL(x,y) | If x est null, renvoie alors y, sinon renvoie x |
|
SUBST(s1,s2,s3) |
Remplace la première occurrence de la chaîne s2 dans la chaîne s1 par la chaîne s3. Vous trouverez ci-dessous quelques exemples : SUBST(node_id,'01','ND') appliqué à l’ID de nœud '01880132', renvoie 'ND880132' |
|
GSUBST(s1,s2,s3) |
Remplace toutes les occurrences de la chaîne s2 dans la chaîne s1 par la chaîne s3. Vous trouverez ci-dessous quelques exemples : GSUBST(node_id,'01','ND') appliqué à l’ID de nœud '01880132', renvoie 'ND88ND32' |
|
GENSUBST(s,regexp,format) |
Remplace la chaîne s avec le format défini si l’expression régulière regxp correspond à la chaîne s, sinon renvoie la chaîne s non modifiée. Vous trouverez ci-dessous quelques exemples : GENSUBST(node_id,'(01)(..)(..)(.*)','ND\2\4a\1') appliqué au nœud '01880132', renvoie 'ND8832a01' Remarque :
Conseil : Les expressions régulières sont particulièrement performantes et vous permettent d’en faire bien plus que les exemples fournis ici. Pour en savoir plus sur les expressions régulières et leur syntaxe, voir cet article sur Wikipédia.
|
| NL() |
Renvoie un caractère de nouvelle ligne. Par exemple, pour configurer un champ de note de trois lignes : SET notes = 'Set' + NL() + 'new' + NL() + 'line' |
|
YEARPART(s) |
YEARPART est appliqué/renvoie l’année d’une date. Si la date est le 24/09/2024 (en supposant un format de date JJ/MM/AAAA), YEARPART est 2024. Remarque : Les fonctions YEARPART, MONTHPART et DAYPART fonctionnent sur les champs de date et de chaîne formatés en tant que dates. Un zéro est renvoyé si la chaîne à laquelle elles sont appliquées ne correspond pas à une date.
|
|
MONTHPART(s) |
MONTHPART est appliqué/renvoie le mois d’une date. Dans l’exemple ci-dessus, MONTHPART correspond à 09. Remarque : Les fonctions YEARPART, MONTHPART et DAYPART fonctionnent sur les champs de date et de chaîne formatés en tant que dates. Un zéro est renvoyé si la chaîne à laquelle elles sont appliquées ne correspond pas à une date.
|
|
DAYPART(s) |
DAYPART est appliqué/renvoie le jour d’une date. Dans l’exemple ci-dessus, DAYPART correspond à 24. Remarque : Les fonctions YEARPART, MONTHPART et DAYPART fonctionnent sur les champs de date et de chaîne formatés en tant que dates. Un zéro est renvoyé si la chaîne à laquelle elles sont appliquées ne correspond pas à une date.
|
|
NOW() |
Fonction sans paramètre définissant le présent. Cette fonction utilise la date et l’heure actuelles de l’ordinateur, de sorte que les requêtes SQL utilisant NOW n’aient pas à être réécrites avant d’être exécutées pour être à jour. |
|
DATEPART(date) |
DATEPART renvoie la partie date sous forme de date (par exemple, supprime les minutes des dates). |
|
TIMEPART(date) |
TIMEPART renvoie la partie heure d’une date sous la forme de minutes après minuit. |
|
YEARSDIFF(from,to) |
YEARSDIFF renvoie le nombre d’années complètes entre deux dates. Remarque : Les fonctions YEARSDIFF, MONTHSDIFF et DAYSDIFF ignorent les minutes des dates en question.
|
|
MONTHSDIFF(from,to) |
MONTHSDIFF renvoie le nombre de mois complets entre deux dates. Remarque : Les fonctions YEARSDIFF, MONTHSDIFF et DAYSDIFF ignorent les minutes des dates en question.
|
|
DAYSDIFF(from,to) |
DAYSDIFF renvoie le nombre de jours complets entre deux dates. Remarque : Les fonctions YEARSDIFF, MONTHSDIFF et DAYSDIFF ignorent les minutes des dates en question.
|
|
INYEAR(date,number) |
INYEAR renvoie true si la date se situe dans l’année indiquée sous forme de nombre. Remarque : Si l’un des paramètres des fonctions INYEAR, INMONTH, INYEARS et INMONTHS n’est pas un nombre, la fonction renvoie false. Si le nombre n’est pas un entier, il est arrondi à l’entier le plus proche.
|
|
INMONTH(date,month,year) |
INMONTH renvoie true si la date se situe dans l’année et dans le mois sous forme de nombres. Remarque : Si l’un des paramètres des fonctions INYEAR, INMONTH, INYEARS et INMONTHS n’est pas un nombre, la fonction renvoie false. Si le nombre n’est pas un entier, il est arrondi à l’entier le plus proche.
|
|
INYEARS(date,startyear,endyear) |
INYEARS renvoie true si la date se situe entre l’année de début et l’année de fin (incluse). Remarque : Si l’un des paramètres des fonctions INYEAR, INMONTH, INYEARS et INMONTHS n’est pas un nombre, la fonction renvoie false. Si le nombre n’est pas un entier, il est arrondi à l’entier le plus proche.
|
|
INMONTHS(date,startmonth,startyear,endmonth,endyear) |
INMONTHS renvoie true si la date est comprise entre le mois de début de l’année de début et le mois de fin de l’année de fin inclus. Remarque : Si l’un des paramètres des fonctions INYEAR, INMONTH, INYEARS et INMONTHS n’est pas un nombre, la fonction renvoie false. Si le nombre n’est pas un entier, il est arrondi à l’entier le plus proche.
|
|
ISDATE(putative_date) |
Si le champ correspond à une date parce qu’il provient de la base de données, cette fonction renvoie true ; s’il s’agit d’une chaîne, cette fonction renvoie true si elle peut être convertie en date, sinon elle renvoie false. |
|
MONTHYEARPART(date) |
MONTHYEARPART renvoie la chaîne "<month>/<year>". |
|
YEARMONTHPART(date) |
YEARMONTHPART renvoie la chaîne "<year>/<date>". |
|
MONTHNAME(date) |
MONTHNAME renvoie le mois (selon les paramètres régionaux) |
|
SHORTMONTHAME(date) |
SHORTMONTHNAME renvoie la forme abrégée du mois (tel que déterminé par les paramètres régionaux et la façon dont Windows l’abrège). |
|
DAYNAME(date) |
DAYNAME renvoie le jour (selon les paramètres régionaux). |
|
SHORTDAYNAME(date) |
SHORTDAYNAME renvoie la forme abrégée du jour (tel que déterminé par les paramètres régionaux et la façon dont Windows l’abrège). |
| NUMTOMONTHNAME(n) | Renvoie le nom du mois sous forme d’entier compris entre 1 et 12. |
| NUMTOSHORTMONTHNAME(n) | Renvoie la version abrégée d’un nom de mois (par exemple, JAN) en fonction d’un entier compris entre 1 et 12. |
| TODATE(year,month,day) | Renvoie la date en indiquant l’année, le mois et le jour sous forme d’entiers. |
| TODATETIME(year,month,day,hours,minutes) | Renvoie la date en indiquant l’année, le mois et le jour sous forme d’entiers. |
L’objectif de ces fonctions consiste à diviser les valeurs en intervalles, à noter les valeurs, à les mapper sur des listes, etc.
| Syntaxe | Description |
|---|---|
|
AREF(n,list) |
AREF, étant donné une variable de liste list et un nombre compris entre 1 et la longueur de list, renvoie le nième élément de la liste. |
|
LEN(list variable) |
LEN renvoie le nombre d’éléments dans une variable de liste. |
|
RINDEX(expression, list variable) |
RINDEX est une fonction qui ne peut être utilisée que si la liste est triée. L’objectif de la fonction RINDEX est essentiellement de diviser les valeurs en « paquets ». |
|
LOOKUP(expression, list variable) |
S’il y a n éléments dans la liste et si la valeur de l’expression est comprise entre 1 et n inclus, LOOKUP renvoie l’élément approprié de la liste. |
|
MEMBER(expression, list variable) |
MEMBER renvoie true si la valeur de l’expression est l’une des valeurs de la liste, et false dans le cas contraire. |
|
INDEX(expression, list variable) |
Si le résultat de l’expression correspond à la première valeur de la liste, INDEX renvoie 1, s’il correspond à la deuxième valeur, il renvoie 2, si le résultat de l’expression ne correspond pas à la liste, il renvoie 1. |
|
TITLE(n,list) |
TITLE fournit des titres pour les « paquets » lorsque RINDEX est utilisé pour partitionner des valeurs en un certain nombre de plages. |
| Syntaxe | Description |
|---|---|
|
LOG(x) |
Calcule le logarithme (base 10) de x. |
|
LOGE(x) |
Calcule le logarithme (base e) de x. |
|
EXP(x) |
Calcule ex. |
|
SIN(x) |
Calcule le sinus de x. |
|
COS(x) |
Calcule le cosinus de x. |
|
TAN(x) |
Calcule la tangente de x. |
|
ASIN(x) |
Calcule le sinus inverse de x. |
|
ACOS(x) |
Calcule le cosinus inverse de x. |
|
ATAN(x) |
Calcule la tangente inverse de x. |
|
ATAN2(x,y) |
Calcule la tangente inverse de x / y en utilisant les signes de x et y pour déterminer le quadrant. |
|
GAMMALN(x) |
Renvoie le logarithme (base e) de la fonction gamma de x. |
Les fonctions d’agrégation permettent de calculer des valeurs en fonction de ce qui suit :
| Syntaxe | Description |
|---|---|
|
ANY(expression conditionnelle) |
ANY renvoie true si l’expression est vraie pour une ligne du champ de tableau, par exemple ANY(details.code=’JDS’) renvoie true si l’une des lignes du champ de tableau de détails contient le code JDS, false dans le cas contraire. Remarque : L’expression entre crochets peut contenir plusieurs champs de tableau, d’autres champs de l’objet, des constantes et des fonctions non agrégées, et ceux-ci peuvent tous être combinés avec des opérateurs arithmétiques, de comparaison et logiques.
|
|
ALL(expression conditionnelle) |
ALL renvoie true si l’expression est vraie pour l’ensemble des lignes, objets associés et pas de temps. |
|
COUNT(expression conditionnelle) |
COUNT compte le nombre de lignes, d’objets associé et de pas de temps pour lesquels l’expression est vraie. |
|
MAX(expression conditionnelle) |
MAX renvoie la valeur maximale (nombre, date ou chaîne) de l’ensemble des lignes, objets associés et pas de temps. Remarque : MAX et MIN fonctionnent sur les champs numériques, de date et de chaîne. Dans le cas de champs de chaîne, la comparaison entre les chaînes est effectuée en fonction de la langue dans laquelle votre installation Windows est configurée.
|
|
MIN(expression conditionnelle) |
MIN renvoie la valeur minimale (nombre, date ou chaîne) de l’ensemble des lignes, objets associés et pas de temps. Remarque : MAX et MIN fonctionnent sur les champs numériques, de date et de chaîne. Dans le cas de champs de chaîne, la comparaison entre les chaînes est effectuée en fonction de la langue dans laquelle votre installation Windows est configurée.
|
|
AVG(expression conditionnelle) |
AVG renvoie la moyenne de toutes les valeurs non nulles de l’expression (numérique uniquement) pour l’ensemble des lignes, objets associés et pas de temps. |
|
FIRST(expression conditionnelle) |
FIRST renvoie la valeur de l’expression pour la première ligne, du premier objet associé et du pas de temps. |
|
LAST(expression conditionnelle) |
LAST renvoie la valeur de l’expression pour la dernière ligne, le dernier objet associé et le pas de temps. Ainsi, dans le calcul de la valeur, l’un des enregistrements du champ tableau est pris en compte. |
| Syntaxe | Description |
|---|---|
|
+ |
Tous ces opérateurs font ce que l’on attend des nombres.
<> signifie « différent de » ou « n’est pas égal à », selon le contexte.
En outre, + peut être utilisé pour concaténer des chaînes. + est le seul opérateur arithmétique doté d’une signification particulière pour les chaînes. |
|
- |
|
|
* |
|
|
/ |
|
|
= |
|
|
< |
|
|
<= |
|
|
> |
|
|
>= |
|
|
<> |
|
|
^ |
L’opérateur ^ signifie « élever à la puissance ». Par exemple, x^2 signifie x au carré. |
|
% |
L’opérateur % signifie « le module de », donc a % b donne le reste de a / b, par exemple année % 10 donne le dernier chiffre de l’année. |
| Syntaxe | Description |
|---|---|
|
AND |
Explicite |
|
OU |
|
|
NOT |
| Syntaxe | Description |
|---|---|
|
ISNULL |
Renvoie la valeur true si un champ est NULL |
|
IS NOT NULL |
Renvoie la valeur true si un champ n’est pas NULL |
|
LIKE |
Les deux caractères spéciaux que vous pouvez utiliser avec LIKE sont les suivants :
Tout autre caractère dans une chaîne correspond uniquement à lui-même. La correspondance est similaire à DOS, à savoir :
Comme pour DOS, dès que vous appuyez sur *, tout est mis en correspondance. Par conséquent, vous ne pouvez pas utiliser des expressions telles que LIKE '*AB' pour rechercher des éléments avec AB à la fin ou LIKE '*AB*' pour rechercher des éléments avec AB quelque part dans la chaîne. Notez que ce comportement de LIKE est différent de celui de Microsoft Access. |
|
MATCHES |
MATCHES permet d’effectuer des recherches plus complexes que l’opérateur LIKE en utilisant des expressions régulières. Les éléments de syntaxe importants sont les suivants :
La correspondance fonctionne comme suit :
Les expressions régulières sont particulièrement performantes et vous permettent d’en faire bien plus que les exemples de base ci-dessus. Pour en savoir plus sur les expressions régulières et leur syntaxe, voir cet article sur Wikipédia. |
| Syntaxe | Description |
|---|---|
|
OUI |
Explicite |
|
NON |
|
|
NULL |
Il est possible d’appliquer les fonctions d’agrégation sur tous les résultats de simulation au lieu d’un seul instantané en utilisant tsr au lieu de sim.
| Syntaxe | Description |
|---|---|
|
DURATION(expression conditionnelle) |
La durée (en minutes) pendant laquelle l’expression est vraie (résultats uniquement), par exemple DURATION(tsr.pressure < x) renvoie le temps cumulé (en minutes) pendant lequel un nœud a une pression inférieure à x. |
|
INTEGRAL(expression conditionnelle) |
La somme de l’expression à chaque pas de temps multipliée par la longueur du pas de temps en minutes (résultats uniquement), par exemple INTEGRAL(tsr.flow*60) renvoie le volume total d’eau qui s’écoule dans une canalisation (en litres), en supposant que l/s est utilisé comme unité de débit. |
|
WHENEARLIEST(expression conditionnelle) |
L’heure la plus ancienne pour laquelle l’expression est vraie (résultats uniquement), par exemple WHENEARLIEST(tsr.pressure < x) renvoie la date et l’heure du pas de temps le plus ancien auxquelles un nœud a une pression inférieure à x. |
|
WHENLATEST(expression conditionnelle) |
L’heure la plus récente pour laquelle l’expression est vraie (résultats uniquement), par exemple WHENLATEST(tsr.pressure < x) renvoie la date et l’heure du dernier pas de temps auxquelles un nœud a une pression inférieure à x. |
|
EARLIEST(expression conditionnelle) |
Première valeur non nulle de l’expression (résultats uniquement). Elle n’est susceptible de donner une réponse significative que si elle est utilisée en combinaison avec la fonction IIF par exemple EARLIEST(IIF(tsr.pressure < x, tsr.pressure, NULL)) renvoie la pression d’un nœud au dernier pas de temps auquel le nœud avait une pression inférieure à x. |
|
LATEST(expression conditionnelle) |
Dernière valeur non nulle de l’expression (résultats uniquement). Elle n’est susceptible de donner une réponse significative que si elle est utilisée en combinaison avec la fonction IIF par exemple LATEST(IIF(tsr.pressure < x, tsr.pressure, NULL)) renvoie la pression d’un nœud au pas de temps le plus ancien auquel le nœud avait une pression inférieure à x. |
|
WHENMAX(expression conditionnelle) |
Moment auquel l’expression est à son maximum (résultats uniquement), par exemple WHENMAX(tsr.pressure) renvoie la date et l’heure auxquelles un nœud atteint sa pression maximale enregistrée. |
|
WHENMIN(expression conditionnelle) |
Moment auquel l’expression est à son minimum (résultats uniquement), par exemple WHENMIN(tsr.pressure) renvoie la date et l’heure auxquelles un nœud atteint sa pression minimale enregistrée. |
SET user_number_1 = x > 390000définit user_number_1 sur 390000, 0 pour les autres, en tant qu’expressions conditionnelles évaluées à 1 pour true et 0 pour false.
SET user_text_1 = zdéfinit user_text_1 sur la valeur z. Lorsque vous effectuez cette opération, les chaînes sont automatiquement épurées des points décimaux et des décimales inutiles. Cela vous permet de concaténer d’autres éléments à la fin de ces chaînes, si nécessaire.
SET user_number_1 = user_text_1affecte la valeur si la chaîne est un nombre valide.
Le moteur SQL traite l’égalité de façon un peu différente. x = NULL et x <> NULL offrent le même résultat que X IS NULL et X IS NOT NULL.
asset_id IS NULL
asset_id = ""
LEN(asset_id)=0
Par exemple, au lieu d’écrire
SET 2d_pt_id = subcatchment_idvous pouvez utiliser
SET [2d_pt_id] = subcatchment_id