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

Cara menghapus tanda kutip ganda tersembunyi di nilai kolom Pengembang SQL

Nilai kolom dalam tabel database tidak memiliki tanda kutip ganda.

Saat Anda menyalin data dari kisi hasil, Pengembang SQL menambahkannya sebagai bagian dari operasi penyalinan, untuk membantu Anda. (Mungkin ada cara untuk memintanya untuk tidak melakukannya, tetapi saya tidak dapat langsung melihatnya.) Ini dilakukan karena nilai pertama yang Anda dapatkan memiliki karakter baris baru yang tertinggal. Saya dapat menduplikasi apa yang Anda lihat jika saya melakukannya:

select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;

Jika saya menjalankan sebagai skrip, jendela keluaran skrip menunjukkan:

'TESTDATA
---------
Testdata
Testdata

Di sini baris baru hilang, dan salin dan tempel dari itu tidak mempertahankannya. Jika saya menjalankan sebagai pernyataan, data di jendela hasil kueri terlihat sama:

tetapi jika saya menyalin data itu dari kisi dan menempelkannya (di mana saja, tidak hanya di Notepad++) saya juga melihat:

"Testdata
"
Testdata

... jadi baris baru dipertahankan, dan diapit dalam tanda kutip ganda sehingga apa pun yang ditempelkan (saya kira ini ditargetkan pada Excel) memahami bahwa itu adalah nilai tunggal, termasuk karakter baris baru itu.

Masalahnya adalah bahwa mereka sebenarnya tidak berbeda; satu memiliki baris baru, yang lain tidak.

Jika Anda ingin mengabaikannya dan memperlakukannya sebagai hal yang sama, Anda dapat memotong baris baru yang tertinggal:

select distinct rtrim(col, chr(10))
from your_table;

Demo dengan sampel data yang sama:

-- CTE for sample data
with your_table (col) as (
  select 'Testdata' || chr(10) from dual
  union all
  select 'Testdata' from dual
)
select col
from your_table;

COL      
---------
Testdata
Testdata

-- CTE for sample data
with your_table (col) as (
  select 'Testdata' || chr(10) from dual
  union all
  select 'Testdata' from dual
)
select distinct rtrim(col, chr(10)) as col
from your_table;

COL      
---------
Testdata


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Membuat urutan Oracle yang dimulai dengan alfanumerik

  2. Parameter.AsString gagal di bawah Oracle/MSSQL - Parameter.Value 2-byte karakter di bawah Oracle

  3. Bagaimana cara menggabungkan dua tabel berdasarkan nilai substring bidang?

  4. membuat bentuk tabel saya dinamis

  5. cara memanggil fungsi oracle di mybatis