дополнить smallint нулями в DB2 sql для z/os

Есть ли способ добавить 0 к smallint в DB2 для мейнфреймов z/OS. Я не пишу никакой программы, а запускаю запрос непосредственно в DB2 QMF.

Определение поля:

Column Name  Col type length
some_column  Smallint  2

 some_column     result
 -----------     ------
  288         ==>  0288
  88          ==>  0088
  1224        ==>  1224

person Tokci    schedule 13.03.2015    source источник
comment
Это общая идея для большинства систем: right('000'+cast(c as varchar(10)), 4)   -  person shawnt00    schedule 13.03.2015
comment
@ shawnt00, это действительно будет работать с произвольными числами? (Иногда 1 цифра, иногда 2 и т.д...)   -  person jarlh    schedule 13.03.2015
comment
Я получаю следующую ошибку: я запускаю этот запрос непосредственно в DB2 и не использую какую-либо программу. Я заменил c именем столбца DSNT408I SQLCODE = -171, ОШИБКА: ТИП ДАННЫХ, ДЛИНА ИЛИ ЗНАЧЕНИЕ АРГУМЕНТА 1 ИЗ + НЕДЕЙСТВИТЕЛЬНО   -  person Tokci    schedule 13.03.2015


Ответы (1)


Во всех поддерживаемых в настоящее время версиях DB2 для z/OS есть функция DIGITS(), которая делает именно то, что вам нужно.

person mustaccio    schedule 13.03.2015
comment
Функция DIGITS() здесь не работает и не работает, потому что функция возвращает строку длиной 5, если аргументом является небольшое целое число. Аргумент в моем случае — это small int. Я получаю результат как 00360 00288 и хочу 0360 0288 - person Tokci; 13.03.2015
comment
@AshishSriAshish Итак, возьмите только самую правую 4-символьную подстроку. - person user2338816; 14.03.2015