Стойността на колоната в таблицата на базата данни няма двойни кавички.
Когато копирате данните от таблицата с резултати, 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