Yanıtlar:
Öyle ||örneğin,:
select 'Mr ' || ename from emp;
Düşünebildiğim tek "ilginç" özellik , belki de beklediğiniz gibi değil , 'x' || nullgeri dönüşler .'x'null
||Oracle'da mantıksal bir operatör değildir, bu nedenle 'x'||nullgeri döner x.
AND, NOTvb. gibi operatörleri kastediyorsanız , elbette ||mantıklı bir operatör değildir. Ama bunun 'x'||nullgeri dönmeyle ne ilgisi var x? n+nullnull değerini döndürür, bu yüzden +mantıksal bir operatör mü?
Ayrıca concat var, ama çok fazla kullanılmıyor
select concat('a','b') from dual;
CONCATdiğer DBMS'lerle de uyumludur (en azından MySQL ve Postgres).
nvl().)
CONCATMicrosoft SQL Server 2012 ve sonrasında da mevcuttur . CONCAT, standart olmasa da, kodunuzun taşınabilir olmasını istiyorsanız kesinlikle gitmenin yoludur. ( ||asıl ANSI standart operatörüdür, ancak desteğe bakarak bilmezsiniz!)
2 dizeleri ile uğraşırken concat öneririm ve || bu dizeler 2'den fazla olduğunda:
select concat(a,b)
from dual
veya
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)edesin a||b?
CONCAT(CONCAT(,),)İkiden fazla dizeyi birleştirirken kullanmak benim için çalıştı.
Benim sorunum (yalnızca) tarih dizeleri ile çalışan ve oluşturma gerekli YYYYMMDDdan YYYY-MM-DD(yani tarih biçimini değiştirmeden) şöyle:
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD