Rumah > pangkalan data > tutorial mysql > Bagaimana untuk Memisahkan Nilai Lajur VARCHAR yang Dipisahkan Koma dalam SQL?

Bagaimana untuk Memisahkan Nilai Lajur VARCHAR yang Dipisahkan Koma dalam SQL?

DDD
Lepaskan: 2024-12-16 14:37:17
asal
236 orang telah melayarinya

How to Split Comma-Separated VARCHAR Column Values in SQL?

Memisahkan Nilai Lajur VARCHAR dalam SQL

Dalam SQL, jenis data VARCHAR menyimpan rentetan aksara panjang berubah-ubah. Apabila berurusan dengan lajur VARCHAR, nilai lajur mungkin perlu dibahagikan kepada berbilang nilai individu.

Andaikan anda mempunyai pernyataan SQL SELECT seperti ini:

SELECT 
  AD_Ref_List.Value
FROM AD_Ref_List
WHERE AD_Ref_List.AD_Reference_ID= 1000448
Salin selepas log masuk

Pernyataan ini mengembalikan semua nilai daripada lajur Nilai dalam jadual AD_Ref_List di mana lajur AD_Reference_ID adalah sama dengan 1000448. Hasilnya mungkin kelihatan seperti ini:

Value
CO,VO

Dalam hasil ini, lajur Nilai mengandungi senarai nilai yang dipisahkan koma. Untuk menapis hasil dengan lebih lanjut, anda mungkin mahu membahagikan nilai ke dalam baris individu, seperti:

Value
CO
VO

Salah satu cara untuk mencapai ini ialah menggunakan operator IN, seperti ini:

SELECT 
  AD_Ref_List.Value
FROM AD_Ref_List
WHERE AD_Ref_List.AD_Reference_ID= 1000448
AND AD_Ref_List.Value IN
  (SELECT xx_insert.XX_DocAction_Next
  FROM xx_insert
  WHERE xx_insert_id = 1000283
  )
;
Salin selepas log masuk

Walau bagaimanapun, pertanyaan ini mungkin tidak mengembalikan baris kerana Oracle menganggap senarai nilai sebagai rentetan tunggal, bukan sebagai nilai individu. Untuk membetulkannya, anda boleh menggunakan teknik berikut:

SELECT r.Value
FROM   AD_Ref_List r
       INNER JOIN xx_insert x
       ON ( ',' || x.XX_DocAction_Next || ',' LIKE '%,' || r.value || ',%' )
WHERE  r.AD_Reference_ID = 1000448
AND    x.xx_insert_id    = 1000283;
Salin selepas log masuk

Pertanyaan ini menggunakan operator LIKE untuk menyemak sama ada nilai daripada jadual AD_Ref_List ialah subrentetan senarai nilai daripada jadual xx_insert. Ini akan mengembalikan hasil yang diingini, dengan setiap nilai dalam lajur Nilai dipaparkan sebagai baris yang berasingan.

Atas ialah kandungan terperinci Bagaimana untuk Memisahkan Nilai Lajur VARCHAR yang Dipisahkan Koma dalam SQL?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan