| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- gradle
- 유효성검사
- after-throwing
- frontController
- @
- 바인딩변수
- @Valid
- Java
- @ResponseBody
- application.properties
- 의존주입
- c:if
- SpringBoot
- 생성자주입
- @RequestMapping
- springjdbc
- 어노테이션
- spring
- PointCut
- @RequestParam
- 비즈니스레이어
- produces
- 서비스레이어
- MVC
- AOP
- Model
- springmvc
- .xml
- jointpoint
- 스프링
- Today
- Total
메모장
05-1 문자열 함수 본문
- 문자열과 문자열 연결하기: CONCAT 함수
CONCAT 함수로 문자열을 연결하는 방법
SELECT CONCAT ('I', 'Love', 'SQL')
I와 SQL 사이에 LOVE 가 들어가게 연결 한다.
- 문자열과 숫자 또는 날짜 연결하기 : CAST, CONVERT 함수
숫자나 날짜 등의 값을 문자열로 변환해 연결하려면 어떻게 해야 할까 ? 그럴때 CAST,CONVERT를 쓴다.
SELECT ipo_year + open_price FROM nasdaq_company
WHERE symbol = 'MSFT' ------> 오류
CAST 함수 사용방법 !!
CAST(expression AS datatype(length))
------ 정답 ------
SELECT
CAST(ipo_year AS nvarchar(50)) + ' ' + CAST(open_price AS nvarchar(50))
FROM nasdaq_company WHERE symbol = 'MSFT'
CONVERT 함수 사용방법 !!
CONVERT (data_type [(length)], expression [, style])
------ 숫자형식을 문자형식으로 변환해 문자열을 연결 ------
SELECT
CONVERT(ipo_year AS nvarchar(50)) + ' ' + CONVERT(open_price AS nvarchar(50))
FROM nasdaq_company WHERE symbol = 'MSFT'
-- 숫자형을 문자열로 변환 하되 문자열 크기를 작게 지정하면 산술오버플로 오류가 발생한다.
만약 숫자에서 앞의 5자리를 문자열로 반환받고 싶다면 숫자 앞뒤로 ' '를 추가해
문자열로 인식시킨다음 5자리를 잘라내야 한다.
- NULL 과 문자열 연결하기 : ISNULL, COALESCE 함수
만약 문자열과 연결하려는 값이 NULL이면 결과는 NULL로 반환 된다. 그래서 테이블에 NULL이 있다면 문자열 또는 숫자로 자료형을 변환 해야 한다. NULL은 ISNULL 함수 나 COALESCE함수로 자료형을 변환한다.
1) ISNULL : 인자로 (열 이름, 대체할 값) 과 같이 전달 하면 해당 열 이름의 NULL을 대체할 값으로 변환
2) COALESCE : (열 이름1, 열이름2,... )와 같이 여러 열 이름을 인자로 전달한다.
ISNULL 함수의 형변환 기본 형식
ISNULL (check_expression, replacement_value)
ISNULL 사용방법 !!
SELECT symbol, isnull(sector, ' '), open_price FROM nasdaq_company
WHERE symbol = 'DBA' -----> sector를 공백으로 바꿔주세요
SELECT symbol, isnull(sector, industry), industry, open_price FROM nasdaq_company
WHERE symbol = 'DBA' -----> sector를 industry로 바꿔주세요 .
industry가 null이면 sector자리도 null이다.
--------------------------------------------
COALESCE 사용방법 !!
SELECT symbol, coalesce(sector, industry, open_price), industry, open_price
FROM nasdaq_company WHERE symbol = 'DBA' 쉼표로 구분한 N개의 인자를 순차 대입
-> sector값이 null 이면 다음 industry가 null 이면 다음 open_price
- 문자열을 소문자나 대문자로 변경하기 : LOWER, UPPER 함수
SELECT 'Do it! SQL', LOWER('Do it! SQL'), UPPER('Do it! SQL')
LOWER 는 소문자로 do it! sql
UPPER 는 대문자로 DO IT! SQL
- 문자열 공백 제거 하기 : LTRIM, RTRIM, TRIM 함수
LTRIM 은 왼쪽 공백 제거
RTRIM 은 오른쪽 공백 제거
TRIM 은 양쪽 공백 제거
- 문자열 길이 반환하기 : LEN 함수
LEN 함수는 문자열의 문자개수를 반환 ,특징은 문자 개수를 셀때 앞의 공백은 포함하지만,뒤의 공백은 포함X
SELECT LEN(' Do it! SQL') ---> 공백까지 14개
- 특정문자 까지 문자열 길이 반환하기 : CHARINDEX 함수
지정한 특수문자 까지의 길이를 반환한다.
SELECT 'Do it!! SQL', CHARINDEX('!', 'Do it!! SQL') --> ! 까지의 문자열 길이 6
- 지정한 길이만큼 문자열 반환하기 : LEFT, RIGHT 함수
SELECT 'Do it! SQL',
LEFT('Do it! SQL',2), ---> 왼쪽 에서 2개 Do
RIGHT('Do it! SQL',2) ---> 오른쪽에서 2개 QL
- 지정한 범위의 문자열 반환하기 : SUBSTRING
지정한 범위의 문자열 반환하는 방법
SUBSTRING (expression, start, length)
SELECT 'Do it! SQL', SUBSTRING('Do it! SQL',4,2) -->4번째 문자 부터 2개 ( it )
-----------------------------------------------
SUBSTRING 함수는 CHARINDEX 함수를 조합해 사용하는 경우가 많다.
SELECT SUBSTRING('email@email.com', 1, CHARINDEX('@', 'email@email.com' -1)
처음시작부터 '@'가 들어가는문장 바로 앞까지 문자열 검색
- 특정문자를 다른 문자로 변경하기 : REPLACE 함수
REPLACE 함수는 첫번째 인자는 열 또는 문자를 입력하고 , 두번째 인자는 변경하려는 문자열,
세번째 인자는 변경 문자열을 입력한다.
REPLACE (string_expression, string_pattern, string_replacement)
열 또는 문자 이것을 이것으로 변경
REPLACE (symbol, 'A' , 'C') symbol열 의 A 를 C로 바꿔줘
- 문자 반복하기 : REPLICATE 함수
REPLICATE (string_expression, integer_expression)
이것을 이만큼 반복할게요
REPLICATE ('0', 10) ---> 0을 10번 반복할게요
REPLACE(symbol, 'A', REPLICATE('C',10)) --> symbol 열의 A를 C가 10번 반복된 것으로 바꿔줘
- 공백 문자 반복하기 : SPACE 함수
SELECT symbol + SPACE(10) + company_name FROM nasdaq_company -->공백문자 10개 넣어줘
- 문자열 역순으로 표시하기 : REVERSE 함수
SELECT 'Do it! SQL', REVERSE('Do it! SQL') ---> LQS !ti oD
- 지정한 범위의 문자열 삭제하고 새 문자열 끼워 넣기 : STUFF함수
SELECT STUFF('Do it! XX SQL Server', 8, 2, N'마이크로소프트')
XX -> Do it! 마이크로소프트 SQL Server
- 숫자를 문자열로 변환하기 : STR 함수
STR 함수만의 특징은 2번째 인자로 전달하는 변환 길잇값이 변경할 문자열 길이보다 짧은 경우 오른쪽 맞춤으로 정렬한다는 것 , 3번째 인자로 전달하는 소수 부분 길이에 맞게 반올림해 표현 한다는 것
SELECT STR(123.45, 6 , 1); --> 123.5
만약 변환 길잇값이 변경할 문자열 길이보다 짧으면 변환 길잇값 만큼 * 문자를 반환한다. 다음 쿼리의 경우 변환 길이값은 2이고 변경할 문자열의 길이가 5 이므로 ** 를 반환했다.
SELECT STR(123.45, 2 , 2); --> **
'DB > [SQL 입문]' 카테고리의 다른 글
| 05-3 집계함수 (0) | 2024.04.11 |
|---|---|
| 05-2 날짜 함수 (0) | 2024.04.11 |
| 04-3 공통 테이블 식 (0) | 2024.04.11 |
| 04-2 서브쿼리 (0) | 2024.04.11 |
| 04-1 조인 (0) | 2024.04.11 |