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:Satu-satunya fitur "menarik" yang bisa saya pikirkan adalah yang
'x' || null
kembali'x'
, tidaknull
seperti yang mungkin Anda harapkan.sumber
||
di Oracle bukan operator yang logis, karena itu,'x'||null
kembalix
.AND
,NOT
dll. tentu saja||
bukan operator yang logis. Tetapi apa yang harus terjadi karena'x'||null
kembalix
?n+null
mengembalikan null, jadi apakah+
operator logis?Ada juga konser, tetapi tidak banyak digunakan
sumber
CONCAT
juga kompatibel dengan DBMS lain (setidaknya MySQL dan Postgres).nvl()
.)CONCAT
juga 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:
atau
sumber
concat(a,b)
lebiha||b
?output :: Abc def
sumber
Menggunakan
CONCAT(CONCAT(,),)
bekerja untuk saya ketika menggabungkan lebih dari dua string.Masalah saya diperlukan bekerja dengan string tanggal (hanya) dan membuat
YYYYMMDD
dariYYYY-MM-DD
sebagai berikut (yaitu tanpa mengkonversi ke format tanggal):sumber