답변:
||
연산자 "CONCATENATE"- 그것은 함께 피연산자의 두 문자열을 결합한다.
에서 http://www.sqlite.org/lang_expr.html
패딩의 경우, 내가 사용한 것처럼 보이는 사기적인 방법은 대상 문자열로 시작하여 '0000'이라고 말하고 '0000423'을 연결 한 다음 '0423'에 대해 substr (result, -4, 4)하는 것입니다.
업데이트 : SQLite에 "lpad"또는 "rpad"의 기본 구현이없는 것처럼 보이지만 여기에서 기본적으로 제안한 내용을 따를 수 있습니다. http://verysimple.com/2010/01/12/sqlite-lpad -rpad 기능 /
-- 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
그 모습은 다음과 같습니다.
SELECT col1 || '-' || substr('00'||col2, -2, 2) || '-' || substr('0000'||col3, -4, 4)
그것은 산출
"A-01-0001"
"A-01-0002"
"A-12-0002"
"C-13-0002"
"B-11-0002"
COALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
.
SQLite에는printf
정확히 다음과 같은 기능 이 있습니다.
SELECT printf('%s-%.2d-%.4d', col1, col2, col3) FROM mytable
@tofutim 답변에 한 줄만 더 ... 연결 된 행에 대한 사용자 정의 필드 이름을 원하면 ...
SELECT
(
col1 || '-' || SUBSTR('00' || col2, -2, 2) | '-' || SUBSTR('0000' || col3, -4, 4)
) AS my_column
FROM
mytable;
SQLite 3.8.8.3 에서 테스트되었습니다 . 감사합니다!