簡體   English   中英

如何刪除SQL Developer列值中隱藏的雙引號

[英]How to remove hidden double quotes in column values of SQL Developer

我的表中的一些列值用雙引號括起來,我需要刪除這些雙引號。 問題是,我無法在 SQL Developer(版本 4.2.0.16.260)中查看雙引號符號。 但是當我將數據復制到 Notepad++ 時,我得到了雙引號。 我嘗試instr獲取雙引號的位置,它返回結果 0。我也嘗試用空白替換雙引號,但它們沒有被刪除。

下面是我復制到 Notepad++ 時看到的數據。 顯示 2 條記錄。 我試圖從這兩個值中獲取不同的值。 但我不能。

"Testdata
"

Testdata

請試試這個

SELECT REPLACE(TRIM(column_name), CHR(13)||CHR(10))
  FROM table_name;

數據庫表中的列值沒有雙引號。

從結果網格中復制數據時,SQL Developer會將它們作為復制操作的一部分添加,以幫助您解決問題。 (可能有辦法要求它不要,但我不能立即看到它。)它正在這樣做,因為你得到的第一個值有一個尾隨的新行字符。 如果我這樣做,我可以復制你所看到的內容:

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

如果我作為腳本運行,腳本輸出窗口顯示:

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

這里的換行丟失了,復制和粘貼不會保留它。 如果我作為語句運行,查詢結果窗口中的數據看起來是相同的:

查詢結果窗口

但是如果我從網格中復制那些數據並粘貼它(在任何地方,而不僅僅是在Notepad ++中)我也看到:

"Testdata
"
Testdata

...所以新行被保留,並用雙引號括起來,所以不管它被粘貼到哪里(我猜這是針對Excel)理解它是一個單一的值,包括換行符。

我試圖從這兩個值中獲取不同的值

問題在於它們實際上並不是截然不同的; 一個有換行符,另一個沒有換行符。

如果你想忽略它並將它們視為相同,你可以修剪尾隨換行符:

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

使用相同的樣本數據進行演示:

-- 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM