반응형
mybatis로 처리하다보면 특정 테이블에 값이 있는지
유무체크를 구현할때 사용하면 되는 간단한 boolean 처리 쿼리 공유드립니다.
IF EXISTS(
SELECT 1 FROM USER WITH(READUNCOMMITTED)
WHERE USER_ID = #{userId}
AND TYPE = #{type}
)
BEGIN
SELECT 1
END
ELSE BEGIN
SELECT 0
END
IF EXISTS 조건에 부합하는 Query 실행후 검색한 User 테이블에 userId 값이 있다면
1 : true 를 리턴하고 아니라면 0 : false 리턴하게 됩니다.
<select id="checkByUser" resultType="boolean" parameterType="sample.request.UserRequest">
IF EXISTS(
SELECT 1 FROM USER WITH(READUNCOMMITTED)
WHERE USER_ID = #{userId}
AND TYPE = #{type}
)
BEGIN
SELECT 1
END
ELSE BEGIN
SELECT 0
END
</select>
mybatis xml에 작업하게 되면 resultType="boolean" 으로 반환됩니다.
MSSQL 문자열 자르기 함수 LEFT, RIGHT, SUBSTRING
LEFT (문자열 왼쪽 부터 자르기)
LEFT 함수는 문자열을 받아서 왼쪽부터 길이만큼 자르는 함수 입니다.
주민등록번호, 생년월일, 특정코드, 날짜 필드를 잘라서 노출하거나 이름에서 성만 노출할때 사용될수 있습니다.
LEFT(문자열,길이)
예시) LEFT(typeCode,5)
SELECT LEFT(typeCode,5) as fistCode FROM USER
SELECT * FROM USER T1
LEFT JOIN CODE T2 ON T2.typeCode = LEFT(T1.typeCode,5)
RIGHT (문자열 오른쪽 부터 자르기)
RIGHT 함수는 문자열을 받아서 오른쪽 부터 길이만큼 자르는 함수 입니다.
LEFT와 동일하게 다양한 필드 문자열 처리에 사용됩니다.
RIGHT(문자열,길이)
예시) RIGHT(typeCode,5)
SELECT RIGHT(typeCode,5) as fistCode FROM USER
SELECT * FROM USER T1
LEFT JOIN CODE T2 ON T2.typeCode = RIGHT(T1.typeCode,5)
SUBSTRING
SubString 함수는 (문자열, 시작자리index, 자를문자열수) 3가지 매개변수를 전달받아 처리할수 있습니다.
select SUBSTRING(UNIV_CODE,2,3), UNIV_NAME, RIGHT(LOGO_FILE_NAME,15) from CODE;
--테이블(USER)에서 날짜(REG_DT)를 잘라 0000년00월00일 형식으로 만들기--
SELECT
SUBSTRING(REG_DT,1,4)+'년'+SUBSTRING(REG_DT,5,2)+'월'+SUBSTRING(REG_DT,7,2)+'일' AS 일자
FROM USER
'Backend 개발자 > StackOverflow' 카테고리의 다른 글
검색 컨텐츠 SEO 도메인 상위 랭킹 올리는 방법 Google, Naver (0) | 2023.09.28 |
---|---|
Java Springboot 인텔리J를 단축키를 이용한 빠른 코딩기법 리펙토링 공부하는방법, 클린코드 꿈속 예기인가여? 개발을 잘하는 방법! 어떻게해야 잘할수 있지 (0) | 2023.08.08 |
Mssql OUTER APPLY 언제쓰나요? OneToOne 테이블 구조에서 통계 SUM count GroupBy 대신 OUTER APPLY 처리하기 (0) | 2022.12.09 |
Mssql DISTINCT 대신 서브쿼리 EXISTS 사용하기 (0) | 2022.12.06 |
MSSQL 맥북용 M1 추천 Tool Legacy 분석 Mssql 프로시저 검색하기 (1) | 2022.09.08 |