2012-10-03 11 views

cevap

5

deneyin ... veritabanı Oracle 11g olduğunu bu çalıştı ama çalışmıyor regexp_like işlevini kullanabilirsiniz. Durumunuzda, belirli bir sütunun bir dize değerinin sonunda satır başı dönüşü içeren satırları görüntülemek için benzer sorgu kullanılabilir.

Trim işlevi, varsayılan olarak, öncü ve sonunda boşluk siler yorumlarına

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

Demo


Cevap ve hattın satırbaşı veya ucunu silmez karakter. Basit bir test yürütmek sağlar:

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

'[[: space:]] $' nin hangi kısmı aslında satır başı dönüşü kontrol ediyor? Bu $ mi? – raffian

+0

'[[: space:]]' - satırbaşı iadesi (ve cevapta belirtilen diğer yazdırılamayan karakterler). '$' - dizenin sonundaki eşleşmeleri arayın. –

+0

Bunu denedim, ancak sonunda boşluklarla sütunları topla, kesinlikle taşıma iadesi olanlarla atlama ... BTW, +1 for SQLFiddle! – raffian

10

böyle satırbaşı veya dikey sekme veya satırın sonuna kadar olmayan basılabilir karakterler içeren bir değeri bulmak için

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

doğru sayılar için veritabanı karakter seti bağlı olacaktır kullanmak [var] Char [2] n [var] Char [2] türleri için belirlenen türleri ve veritabanı ulusal karakteri. (EBCDIC'yi kullanan herkes bu yanıtı kullanamaz.) –

İlgili konular