Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- REPLICATE
- 이전행
- object검색
- 테이블조회
- 변수 생성
- SQLSearch
- mssql
- replace
- 임시테이블
- Temp Table
- 태블로 #tableau #비율막대그래프
- Date Format
- indexOf
- Lead
- 문자 숫자 조합 문자
- ID만들기
- 날짜포멧
- 총계
- SQL
- altertable
- numeric
- Date
- sqlsearch설치
- 날짜형식
- 소계
- 테이블정보
- 숫자변환
- LAG
- grouping sets
- 다음행
Archives
- Today
- Total
Data Scientist
[MSSQL] 특정 길이만큼 문자 확인 및 채우기 (ID Generator, REPLICATE) 본문
[MSSQL] 문자열 관련 함수 정리
https://luchiashin.tistory.com/14
[MSSQL] 문자열 관련 함수 정리
쿼리 사용중 매우 다양한 문자열 관련 함수를 사용하기 마련이다. 이번 포스팅에서는 문자열 관련 함수를 간략하게 정리하여, 편하게 사용되기를 바란다. 문자열 자르기 (4번째부터 5개) SELECT SUB
luchiashin.tistory.com
이번 포스팅에서는 문자열 함수 관련 포스팅에서 배운 점을 실무에 활용하는 팁을 전수하고자 한다.
간략하게 예를 들어서 설명하도록 하겠다. 테이블의 ID 칼럼 데이터 길이가 VARCHAR(10) 이라고 가정했을 때. 맨 앞글자의 유형이 A, B, C가 있고 그 뒤 9글자는 시퀀스(숫자 순번)라고 규칙을 정하자.
EX) 'A000000001', 'B000000001', 'C000000001'
다음과 같이 문자열과 숫자가 조합된 ID의 경우 Generator를 만들어 두면 편하게 사용이 가능하다. 그러면 문자열 함수를 활용하여 쿼리를 작성해 보도록 하겠다.
DECLARE @V_TYPE VARCHAR(1) = 'A'; -- ID 유형
DECLARE @V_MAX_ID VARCHAR(9); -- 해당 유형 ID MAX 값
DECLARE @V_LENGTH_ID INT = 9; -- 숫자 ID 길이
-- (MAX+1) ID 값 추출
SELECT @V_MAX_ID = CONVERT(VARCHAR, CONVERT(INT, RIGHT(MAX(ID), 9)) + 1)
FROM TABLE_NAME
WHERE ID LIKE 'A%'
;
-- 결과 값
SELECT @V_TYPE + REPLICATE('0', @V_LENGTH_ID - LEN(@V_MAX_ID)) + @V_MAX_ID;
1. 추출하고자 하는 ID의 MAX 값을 불러와서 정수형 변환 후 1을 증가시켜주고, 다시 문자열 데이터형으로 변환해준다.
2. (ID 유형 + 반복 문자 + MAX 다음 값) 을 조합하여 최종 결과를 만들어 낸다.
'SQL' 카테고리의 다른 글
[MSSQL] 이전행, 다음행 데이터 조회 LAG, LEAD 함수 (0) | 2020.08.07 |
---|---|
[MSSQL] 날짜 형식 (DATE FORMAT) (0) | 2020.08.07 |
[MSSQL] 문자열 관련 함수 정리 (0) | 2020.08.07 |
[MSSQL] 임시테이블 생성 및 관리, TEMP TABLE (0) | 2020.08.07 |
[MSSQL] 테이블 정보 조회 (0) | 2020.08.05 |