Il valore della colonna nella tabella del database non ha virgolette.
Quando copi i dati dalla griglia dei risultati, SQL Developer li aggiunge come parte dell'operazione di copia, per aiutarti. (Probabilmente c'è un modo per chiedergli di non farlo, ma non riesco a vederne immediatamente uno.) Lo sta facendo perché il primo valore che stai ricevendo ha un carattere di nuova riga finale. Posso duplicare quello che vedi se lo faccio:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;
Se eseguo come script, la finestra di output dello script mostra:
'TESTDATA
---------
Testdata
Testdata
Qui la nuova riga è persa e copia e incolla da quella non la preserva. Se eseguo come istruzione, i dati nella finestra dei risultati della query hanno lo stesso aspetto:
ma se copio quei dati dalla griglia e li incollo (ovunque, non solo in Notepad ++) vedo anche:
"Testdata
"
Testdata
... quindi la nuova riga viene preservata ed è racchiusa tra virgolette, quindi qualunque cosa sia incollata (suppongo che sia mirata a Excel) capisca che si tratta di un singolo valore, incluso quel carattere di nuova riga.
Il problema è che non sono, infatti, distinti; uno ha una nuova riga, l'altro no.
Se vuoi ignorarlo e trattarli allo stesso modo, puoi tagliare la nuova riga finale:
select distinct rtrim(col, chr(10))
from your_table;
Demo con gli stessi dati di esempio:
-- 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