Подтвердить что ты не робот

Определить длину строки текста DB2

Я пытаюсь выяснить, как написать инструкцию SQL, которая будет захватывать поля, длина которых не должна содержать 12 символов. Я хочу только захватить строку, если она составляет 10 символов.

Какую функцию можно сделать в DB2?

Я понял, что это будет что-то вроде этого, но я ничего не могу найти на нем.
select * from table where not length(fieldName, 12)

4b9b3361

Ответ 1

Это будет захватывать записи со строками (в столбце fieldName) длиной 10 символов:

 select * from table where length(fieldName)=10

Ответ 2

Из аналогичного вопроса DB2 - найдите и сравните длину значения в поле таблицы - добавьте RTRIM, поскольку LENGTH будет возвращать длину определения столбца. Это должно быть правильно:

select * from table where length(RTRIM(fieldName))=10

ОБНОВЛЕНИЕ 27.5.2019: возможно, в более старых версиях db2 функция LENGTH вернула длину определения столбца. На db2 10.5 я попробовал функцию, и она возвращает длину данных, а не длину определения столбца:

select fieldname
, length(fieldName) len_only
, length(RTRIM(fieldName)) len_rtrim
from (values (cast('1234567890  ' as varchar(30)) )) 
as tab(fieldName)

FIELDNAME                      LEN_ONLY    LEN_RTRIM
------------------------------ ----------- -----------
1234567890                              12          10

Можно проверить это, используя этот термин:

where length(fieldName)!=length(rtrim(fieldName))

Ответ 3

В основном мы пишем ниже оператор select * из таблицы, где length (ltrim (rtrim (field))) = 10;