Получить длину значения столбца, а не максимальную длину столбца
Как получить фактическую длину значения в столбце?
Команда 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
Ответы
Ответ 1
LENGTH()
возвращает длину строки (только что подтвержденную). Я полагаю, что ваши данные заполнены пробелами - попробуйте
SELECT typ, LENGTH(TRIM(t1.typ))
FROM AUTA_VIEW t1;
вместо.
Как указано OraNob
, другая причина может заключаться в том, что используется CHAR
, в этом случае LENGTH()
также возвращает ширину столбца, а не длину строки. Однако подход TRIM()
также работает в этом случае.