Giá trị cột trong bảng cơ sở dữ liệu không có dấu ngoặc kép.
Khi bạn sao chép dữ liệu từ lưới kết quả, Nhà phát triển SQL sẽ thêm chúng vào như một phần của thao tác sao chép, để giúp bạn. (Có thể có cách để yêu cầu nó không, nhưng tôi không thể nhìn thấy ngay lập tức.) Nó đang làm điều đó bởi vì giá trị đầu tiên bạn nhận được có một ký tự dòng mới ở cuối. Tôi có thể sao chép những gì bạn đang thấy nếu tôi làm như vậy:
select 'Testdata' || chr(10) from dual
union all
select 'Testdata' from dual;
Nếu tôi chạy dưới dạng tập lệnh, cửa sổ xuất tập lệnh sẽ hiển thị:
'TESTDATA
---------
Testdata
Testdata
Ở đây dòng mới bị mất, và sao chép và dán từ đó sẽ không giữ được nó. Nếu tôi chạy dưới dạng một câu lệnh, dữ liệu trong cửa sổ kết quả truy vấn trông giống nhau:
nhưng nếu tôi sao chép dữ liệu đó từ lưới và dán nó (ở bất kỳ đâu, không chỉ trong Notepad ++) thì tôi cũng thấy:
"Testdata
"
Testdata
... vì vậy dòng mới được giữ nguyên và được đặt trong dấu ngoặc kép để bất cứ thứ gì được dán vào (tôi đoán là dòng này được nhắm mục tiêu vào Excel) đều hiểu rằng đó là một giá trị duy nhất, bao gồm cả ký tự dòng mới đó.
Vấn đề là trên thực tế, chúng không phải là khác biệt; một dòng có dòng mới, dòng kia thì không.
Nếu bạn muốn bỏ qua điều đó và coi chúng như nhau, bạn có thể cắt bỏ dòng mới ở cuối:
select distinct rtrim(col, chr(10))
from your_table;
Demo với cùng một dữ liệu mẫu:
-- 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