Oracle - поиск значений с начальными или конечными пробелами - PullRequest
7 голосов
/ 11 июля 2010

Я пытаюсь выяснить, требует ли определенный столбец функции TRIM.

Как узнать, есть ли в этом столбце таблицы записи с пробелами до или после фактических данных.

Ответы [ 6 ]

15 голосов
/ 11 июля 2010

Вы можете проверить это, используя саму функцию TRIM, не самую эффективную, но точную:

Select *
From TableA
Where MyColumn <> TRIM(MyColumn)

Хотя, если вы проверяете, то все равно оборачиваясь, чтобы урезать, вы, вероятно, захотите просто сделатьэто в первую очередь, вот так:

Select TRIM(MyColumn) as TrimmedMyColumn
From TableA
8 голосов
/ 11 июля 2010

Быстрый и грязный способ

WHERE LENGTH(TRIM(COL1)) <> LENGTH(COL1)
1 голос
/ 26 июня 2017

Так почему же вы не можете использовать следующее, чтобы найти ведущие пробелы?Таким образом я смог идентифицировать записи с ведущими пробелами и использовать «%», чтобы найти конечные пробелы.

SELECT mycolumn
FROM my_table
WHERE mycolumn LIKE ' %'

Я также использовал следующее для удаления начальных и конечных пробелов

Update My_table set Mycolumn = TRIM(Mycolumn) 

, что, кажется, работает отлично.

1 голос
/ 11 июля 2010

Вы можете использовать регулярные выражения в Oracle.

Пример:

select * from your_table 
 where regexp_like(your_column, '^[ ]+.*')
    or regexp_like(your_column, '.*[ ]+$')
0 голосов
/ 05 октября 2016

Следующий запрос будет извлекать строки, когда в конце одного из полей таблицы T $ DSCA имеются завершающие пробелы: SELECT * from TABLE_NAME A WHERE RAWTOHEX (SUBSTR (A.T $ DSCA, LENGTH (T $ DSCA), 1)) = 'A0' И TRIM (T $ DSCA) не является нулевым;

0 голосов
/ 15 июля 2013
select data1, length(data1)-length(replace(data1,' ','')) from t;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...