Dynamique 'COMME' Instruction SQL (Oracle)
Je suis en train de sélectionner à partir d'une table avec la structure suivante :
MATERIALS
id
shortname
longname
toutes les lignes où le nom long est comme le nom court.
J'ai essayé la solution présentée ici : Dynamique Comme Énoncé dans SQL
mais il ne fonctionne pas pour moi.
SELECT * from MATERIALS where longname like (shortname + '%');
ne fonctionne pas dans Oracle.
- J'ai trouvé la réponse dans l'intervalle : sélectionnez * à partir de matériaux où longname comme CONCAT(upper(nom court), '%');
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser le
CONCAT()
fonction:ou mieux encore, le standard
|| (double tube)
opérateur:Oracle
CONCAT()
fonction ne prend pas plus de 2 arguments on pourrait donc utiliser la lourdeurCONCAT(CONCAT(a, b), c)
tout avec l'opérateur, il est simple:a || b || c
CONCAT()
est probablement le plus techniquement correcte.Pour des raisons de commodité, cependant, ORACLE ne ont un équivalent de l'opérateur à
+
...||
est techniquement correct et+
est non-standard.