Oracle
 sql >> Teknologi Basis Data >  >> RDS >> Oracle

Apakah mungkin untuk menanyakan kolom yang dipisahkan koma untuk nilai tertentu?

Anda bisa, menggunakan LIKE. Anda tidak ingin mencocokkan sebagian nilai, jadi Anda harus menyertakan koma dalam pencarian Anda. Itu juga berarti bahwa Anda harus memberikan koma tambahan untuk mencari nilai di awal atau akhir teks Anda:

select 
  * 
from
  YourTable 
where 
  ',' || CommaSeparatedValueColumn || ',' LIKE '%,SearchValue,%'

Namun kueri ini akan lambat, seperti halnya semua kueri yang menggunakan LIKE, terutama dengan karakter pengganti.

Dan selalu ada risiko. Jika ada spasi di sekitar nilai, atau nilai dapat berisi koma itu sendiri dalam hal ini dikelilingi oleh tanda kutip (seperti dalam file csv), kueri ini tidak akan berfungsi dan Anda harus menambahkan lebih banyak logika, memperlambat kueri Anda bahkan lebih.

Solusi yang lebih baik adalah menambahkan tabel anak untuk kategori ini. Atau lebih tepatnya tabel terpisah untuk kategori, dan tabel yang menghubungkan mereka ke YourTable.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ubah tipe data stempel waktu menjadi stempel waktu unix Oracle

  2. Encoding dan decoding Base64 di Oracle

  3. Dampak Monitor SQL EM

  4. Apa itu Oracle SQL &PL/SQL? Semua Yang Perlu Diketahui Pemula

  5. Membership.ValidateUser selalu mengembalikan false setelah memutakhirkan ke VS 2010 / .NET 4.0