O ||
operador é "concatenado" - une as duas seqüências de caracteres de seus operandos.
Em http://www.sqlite.org/lang_expr.html
Para preenchimento, a maneira aparentemente trapaceira que usei é começar com a sequência de destino, digitar '0000', concatenar '0000423' e depois substr (resultado, -4, 4) para '0423'.
Atualização: Parece que não há implementação nativa de "lpad" ou "rpad" no SQLite, mas você pode acompanhar (basicamente o que eu propus) aqui: http://verysimple.com/2010/01/12/sqlite-lpad -rpad-function /
-- the statement below is almost the same as
-- select lpad(mycolumn,'0',10) from mytable
select substr('0000000000' || mycolumn, -10, 10) from mytable
-- the statement below is almost the same as
-- select rpad(mycolumn,'0',10) from mytable
select substr(mycolumn || '0000000000', 1, 10) from mytable
Veja como fica:
SELECT col1 || '-' || substr('00'||col2, -2, 2) || '-' || substr('0000'||col3, -4, 4)
produz
"A-01-0001"
"A-01-0002"
"A-12-0002"
"C-13-0002"
"B-11-0002"