Qu'est-ce que l'opérateur de concaténation de chaînes dans Oracle SQL?
Y a-t-il des fonctionnalités "intéressantes" dont je devrais faire attention?
(Cela semble évident, mais je n'ai pas trouvé de question précédente le posant).
Qu'est-ce que l'opérateur de concaténation de chaînes dans Oracle SQL?
Y a-t-il des fonctionnalités "intéressantes" dont je devrais faire attention?
(Cela semble évident, mais je n'ai pas trouvé de question précédente le posant).
Réponses:
C'est ||, par exemple:
select 'Mr ' || ename from emp;
La seule caractéristique «intéressante» à laquelle je puisse penser est que cela 'x' || nullrevient 'x', pas nullcomme on pourrait peut-être s'y attendre.
||dans Oracle n'est pas un opérateur logique, par conséquent, 'x'||nullretourne x.
AND, NOTetc. alors bien sûr ||n'est pas un opérateur logique. Mais qu'est-ce que cela doit être dû au 'x'||nullretour x? n+nullrenvoie null, donc +un opérateur logique?
Il y a aussi du concat, mais il ne s'utilise pas beaucoup
select concat('a','b') from dual;
CONCATest également compatible avec d'autres SGBD (au moins MySQL et Postgres).
nvl().)
CONCATest également disponible dans Microsoft SQL Server 2012 et versions ultérieures . CONCAT, bien que non standard, est certainement la voie à suivre si vous voulez que votre code soit portable. ( ||est l'opérateur standard ANSI réel, même si vous ne le sauriez pas en regardant le support!)
Je suggérerais concat lorsqu'il s'agit de 2 chaînes, et || lorsque ces chaînes sont supérieures à 2:
select concat(a,b)
from dual
ou
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)plus a||b?
L'utilisation a CONCAT(CONCAT(,),)fonctionné pour moi lors de la concaténation de plus de deux chaînes.
Mon problème nécessitait de travailler avec des chaînes de date (uniquement) et de créer à YYYYMMDDpartir YYYY-MM-DDde ce qui suit (c'est-à-dire sans conversion au format de date):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD