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

Получить длину значения столбца, а не максимальную длину столбца

Как получить фактическую длину значения в столбце?

Команда my (oracle) sql возвращает максимальную длину значения, которая может быть вставлена ​​в столбец вместо реальной длины значения.

Как это исправить?

SQL> SELECT typ, length(t1.typ)
     FROM AUTA_VIEW t1;

TYP        LENGTH(T1.TYP)
---------- --------------
BMW                    10
BMW                    10
BMW                    10
Ferrari                10
BMW                    10
Audi                   10
Audi                   10
Audi                   10
Ferrari                10
Ferrari                10
Mercedes               10
4b9b3361

Ответ 1

LENGTH() возвращает длину строки (только что подтвержденную). Я полагаю, что ваши данные заполнены пробелами - попробуйте

SELECT typ, LENGTH(TRIM(t1.typ))
FROM AUTA_VIEW t1;

вместо.

Как указано OraNob, другая причина может заключаться в том, что используется CHAR, в этом случае LENGTH() также возвращает ширину столбца, а не длину строки. Однако подход TRIM() также работает в этом случае.