[string] sqlite에서 패딩으로 문자열을 연결하는 방법
sqlite 테이블에 세 개의 열이 있습니다.
Column1 Column2 Column3
A 1 1
A 1 2
A 12 2
C 13 2
B 11 2
선택해야합니다 Column1-Column2-Column3
(예 🙂 A-01-0001
. 각 열을 패드로 채우고 싶습니다.-
나는 SQLite와 관련하여 초보자이며 도움을 주시면 감사하겠습니다.
답변
||
연산자 “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"
답변
답변
@tofutim 답변에 한 줄만 더 … 연결 된 행에 대한 사용자 정의 필드 이름을 원하면 …
SELECT
(
col1 || '-' || SUBSTR('00' || col2, -2, 2) | '-' || SUBSTR('0000' || col3, -4, 4)
) AS my_column
FROM
mytable;
SQLite 3.8.8.3 에서 테스트되었습니다 . 감사합니다!