Yanıtlar:
Öyle ||
örneğin,:
select 'Mr ' || ename from emp;
Düşünebildiğim tek "ilginç" özellik , belki de beklediğiniz gibi değil , 'x' || null
geri dönüşler .'x'
null
||
Oracle'da mantıksal bir operatör değildir, bu nedenle 'x'||null
geri döner x
.
AND
, NOT
vb. gibi operatörleri kastediyorsanız , elbette ||
mantıklı bir operatör değildir. Ama bunun 'x'||null
geri dönmeyle ne ilgisi var x
? n+null
null 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;
CONCAT
diğer DBMS'lerle de uyumludur (en azından MySQL ve Postgres).
nvl()
.)
CONCAT
Microsoft 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 YYYYMMDD
dan 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