Мне нужно узнать записи с конечными пробелами. Я попытался построить запрос, используя Length(rtrim)
, однако он не возвращает требуемые записи.Проходящие пробелы plsql
например.
abc "
abc "
abc "
Пожалуйста помогите
Мне нужно узнать записи с конечными пробелами. Я попытался построить запрос, используя Length(rtrim)
, однако он не возвращает требуемые записи.Проходящие пробелы plsql
например.
abc "
abc "
abc "
Пожалуйста помогите
Я думаю, что вы на правильном пути. Следующий пример вернет второй и третий текст, но не первый.
SELECT * FROM
(SELECT 'abc' AS text FROM DUAL
UNION ALL
SELECT 'abc ' AS text FROM DUAL
UNION ALL
SELECT 'abc ' AS text FROM DUAL)
WHERE LENGTH(RTRIM(text)) != LENGTH(text);
Или за столом YOURTABLE
с колонной YOURCOLUMN
, содержащий текст с, возможно, завершающие пробелы:
SELECT * FROM
YOURTABLE
WHERE LENGTH(RTRIM(YOURCOLUMN)) != LENGTH(YOURCOLUMN);
Если у вас также есть HORIZONTAL TAB
, LINE FEED
или CARRIAGE RETURN
вы можете использовать функцию TRANSLATE
для лечения этих как нормальные пробелы:
SELECT * FROM
(SELECT 'abc' AS text FROM DUAL
UNION ALL
SELECT 'abc' || CHR(09) AS text FROM DUAL
UNION ALL
SELECT 'abc' || CHR(10) AS text FROM DUAL
UNION ALL
SELECT 'abc' || CHR(13) AS text FROM DUAL
UNION ALL
SELECT 'abc ' AS text FROM DUAL)
WHERE LENGTH(RTRIM(TRANSLATE(text, CHR(09) || CHR(10) || CHR(13), ' '))) != LENGTH(text);
Привет, спасибо. Но у меня есть тысячи записей, в которых трейлинг не похож на приведенные выше примеры, о которых я упоминал в своем сообщении. Промежуточные пробелы могут отличаться от записи к записи. Там может быть один, двойной, тройной и так далее. Пожалуйста, помогите – Sujagni
Простите, я не совсем понимаю. Что вы подразумеваете под одиночным, двойным, тройным? И что конечные пробелы могут отличаться от записи к записи? В моем примере один имеет 0, один имеет 7, а другой имеет 24 пробела. Запрос возвращает те с 7 и 24. – User42
Извините за путаницу. В моей таблице есть записи, которые имеют 1,2,3,4, .......... 100 конечных пробелов. и мне нужно найти эти записи. – Sujagni
Возможный дубликат [Oracle - поиск значений с помощью ведущие или конечные пробелы] (http://stackoverflow.com/questions/3223226/oracle-finding-values-with-leading-or-trailing-spaces) –
Вот довольно интересный [совет] (http: //www.dba -oracle.com/t_find_leading_trailing_spaces_text_column.htm) –