Ответы:
Это ||, например:
select 'Mr ' || ename from emp;
Единственная «интересная» особенность, о которой я могу подумать, - это 'x' || nullвозврат 'x', не nullтакой , как вы, возможно, ожидаете.
||в Oracle не является логическим оператором, поэтому 'x'||nullвозвращает x.
ANDи NOTт. д., то, конечно, ||это не логический оператор. Но какое это имеет отношение к 'x'||nullвозвращению x? n+nullвозвращает ноль, так +что логический оператор?
Есть также конкат, но он мало привык
select concat('a','b') from dual;
CONCATтакже совместим с другими СУБД (по крайней мере, MySQL и Postgres).
nvl().)
CONCATтакже доступен в Microsoft SQL Server 2012 и более поздних версиях . CONCAT, хотя и нестандартный, безусловно, является подходящим вариантом, если вы хотите, чтобы ваш код был переносимым. ( ||является действительным стандартным оператором ANSI, хотя вы не узнаете об этом, если посмотрите на его поддержку!)
Я бы предложил concat при работе с 2 строками, а || когда этих строк больше 2:
select concat(a,b)
from dual
или
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)более a||b?
Использование CONCAT(CONCAT(,),)сработало для меня при объединении более двух строк.
Моя проблема требовала работы со строками даты (только) и создания YYYYMMDDиз YYYY-MM-DDследующего (т.е. без преобразования в формат даты):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD