Apa yang dimaksud dengan operator rangkaian string dalam Oracle SQL?
Apakah ada fitur "menarik" yang harus saya perhatikan?
(Ini terlihat jelas, tetapi saya tidak dapat menemukan pertanyaan sebelumnya yang menanyakannya).
Apa yang dimaksud dengan operator rangkaian string dalam Oracle SQL?
Apakah ada fitur "menarik" yang harus saya perhatikan?
(Ini terlihat jelas, tetapi saya tidak dapat menemukan pertanyaan sebelumnya yang menanyakannya).
Jawaban:
Hal ini ||, misalnya:
select 'Mr ' || ename from emp;
Satu-satunya fitur "menarik" yang bisa saya pikirkan adalah yang 'x' || nullkembali 'x', tidak nullseperti yang mungkin Anda harapkan.
||di Oracle bukan operator yang logis, karena itu, 'x'||nullkembali x.
AND, NOTdll. tentu saja ||bukan operator yang logis. Tetapi apa yang harus terjadi karena 'x'||nullkembali x? n+nullmengembalikan null, jadi apakah +operator logis?
Ada juga konser, tetapi tidak banyak digunakan
select concat('a','b') from dual;
CONCATjuga kompatibel dengan DBMS lain (setidaknya MySQL dan Postgres).
nvl().)
CONCATjuga tersedia di Microsoft SQL Server 2012 dan seterusnya . CONCAT, meskipun tidak standar, jelas merupakan cara untuk pergi jika Anda ingin kode Anda portabel. ( ||adalah operator standar ANSI yang sebenarnya, meskipun Anda tidak akan mengetahuinya dengan melihat dukungan untuk itu!)
Saya akan menyarankan concat ketika berhadapan dengan 2 string, dan || ketika string itu lebih dari 2:
select concat(a,b)
from dual
atau
select 'a'||'b'||'c'||'d'
from dual
concat(a,b)lebih a||b?
Menggunakan CONCAT(CONCAT(,),)bekerja untuk saya ketika menggabungkan lebih dari dua string.
Masalah saya diperlukan bekerja dengan string tanggal (hanya) dan membuat YYYYMMDDdari YYYY-MM-DDsebagai berikut (yaitu tanpa mengkonversi ke format tanggal):
CONCAT(CONCAT(SUBSTR(DATECOL,1,4),SUBSTR(DATECOL,6,2)),SUBSTR(DATECOL,9,2)) AS YYYYMMDD