2012-10-03 36 views

Trả lời

5

Để tìm một giá trị có chứa các ký tự không thể in được như trở về vận chuyển hoặc tab dọc hoặc cuối dòng bạn có thể sử dụng chức năng regexp_like. Trong trường hợp của bạn để hiển thị các hàng có giá trị chuỗi của một cột cụ thể chứa trả về vận chuyển ở cuối, truy vấn tương tự có thể được sử dụng.

select * 
    from your_table_name 
where regexp_like(trim(string_column), '[[:space:]]$') 

Demo


trả lời cho những ý kiến ​​

Trim chức năng, theo mặc định, xóa ở đầu và đuôi không gian và nó sẽ không xóa vận chuyển trở lại hoặc cuối dòng ký tự. Cho phép thực hiện một thử nghiệm đơn giản:

SQL> create table Test_Table(
    2 id number, 
    3 col1 varchar2(101) 
    4 ); 

Table created 

SQL> insert into Test_Table (id, col1) 
    2 values(1, 'Simple string'); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, 'Simple string with carriage return at the end' || chr(13)); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, ' Simple string with carriage return at the end leading and trailing spaces' || chr(13)||' '); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> insert into Test_Table (id, col1) 
    2 values(1, ' Simple string leading and trailing spaces '); 

1 row inserted 

SQL> commit; 

Commit complete 

SQL> select * 
    2 from test_table; 

     ID COL1 
-------------------------------------------------------------------------------- 
     1 Simple string 
     1 Simple string with carriage return at the end 
     1 Simple string with carriage return at the end leading and trailing spaces 
     1 Simple string leading and trailing spaces 

SQL> 
SQL> select * 
    2 from test_table 
    3 where regexp_like(trim(col1), '[[:space:]]$') 
    4 ; 

     ID COL1 
---------------------------------------------------------------------------------- 
     1 Simple string with carriage return at the end 
     1 Simple string with carriage return at the end leading and trailing spaces 

SQL> 
+0

Phần nào của '[[: không gian:]] $' thực sự đang kiểm tra việc trả lại vận chuyển? Có phải '$'? – raffian

+0

'[[: dấu cách:]]' - tìm kiếm dấu xuống dòng (và các ký tự không thể in khác được đề cập trong câu trả lời). '$' - tìm kiếm các kết quả phù hợp ở cuối chuỗi. –

+0

Tôi đã thử điều này, nhưng nó chọn lên các cột với không gian ở cuối, chắc chắn bỏ qua những người có trả về vận chuyển ... BTW, 1 cho SQLFiddle! – raffian

10

Hãy thử

SELECT name from myTable where name like '%'||chr(10) or name like '%'||chr(13) 
+1

Số chính xác để sử dụng sẽ phụ thuộc vào ký tự cơ sở dữ liệu được đặt cho [var] char [2] và bộ ký tự quốc gia cho n [var] char [2]. (Nhận xét về cơ hội tắt bất cứ ai sử dụng EBCDIC chạy qua câu trả lời này.) –

Các vấn đề liên quan