250x250
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
- ssh 접속 실패 로그
- ssh log
- kafka
- Gradle Jar
- OPC Write
- lock
- MS-SQL
- springboot Gradle
- JOIN DBMS별 차이점
- OPC DA
- SCM
- ssh 접속 로그
- MSSQL
- CPU 사용량
- OPC
- OPC UA Write
- Gradle 빌드 오류
- 스마트공장
- OPC UA
- mssql table 용량
- Jar 경로
- Java 버전 여러개 사용
- delete truncate 차이
- OPC UA Client Write
- Xamarin
- Gradle JDK Path
- c# 강의
- c#
- kafka listener
- table용량
Archives
- Today
- Total
IT’s Ha
[MS-SQL] Stored Procedure Array 변수 지정 본문
728x90
반응형
안녕하세요.
MSSQL에서 Sotred Procedure 사용시 Array를 통하여 데이터 처리 방식에 대해서 공유하려고 합니다.
먼저, 해당 MSSQL의 서버 버전에 따라 사용방식이 조금 다릅니다.
SQL Server 2016 이상과 이하에 따라 사용방법을 설명 드리겠습니다.
그전에 자신의 버전을 모르신다면 버전 확인 방법은 아래와 같습니다.
SELECT @@VERSION
SELECT @@VERSION을 사용하시면 해당 서버의 버전을 확인 하실 수 있습니다.
1. SQL Server 2016 이상 버전
첫번째, STRING_SPLIT 내장 함수 사용입니다.
SELECT value FROM STRING_SPLIT('1,2,3,4', ',');
위와 같이 출력하면 아래와 같은 결과 값을 확인 하실 수 있습니다.
두번재, OPENJSON 내장 함수 사용 Json으로 처리하여 결과 값을 내보내는 방법입니다.
SELECT value FROM OPENJSON(CONCAT('["', REPLACE(STRING_ESCAPE('1,2,3,4', 'JSON'), ',', '","'), '"]')) ;
결과는 위와 동일합니다.
2. SQL Server 2016 이전 버전
XML로 변환하여 파싱하는방법입니다.
CREATE FUNCTION [dbo].[FNT_STRING_SPLIT]
(
@IN_PARAMS NVARCHAR(MAX)
)
RETURNS TABLE AS RETURN
(
SELECT Split.a.value('.', 'NVARCHAR(MAX)') DATA
FROM
(
SELECT CAST('<X>'+REPLACE(@IN_PARAMS, ',', '</X><X>')+'</X>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/X') AS Split(a)
)
첫번째로, 위와 같이 테이블 변환 함수를 생성합니다.
그리고 선언한 함수를 실행합니다.
SELECT * FROM FNT_STRING_SPLIT('1,2,3')
실행하면 위와같이 결과가 나옵니다.
위에 대한 내용으로 여러개의 정보를 선택하여 데이터베이스로 넘겨 정보를 조회 가능합니다.
SELECT * FROM STUDENT WHERE 1=1 AND STD_ID IN(SELECT * FROM FNT(STRING_SPLIT('1,2,3'));
예를 들어 위와같이 쿼리를 작성하여 정보를 가져 올 수 있습니다.
728x90
반응형
'SQL > MS-SQL' 카테고리의 다른 글
[MS-SQL]날짜 형식 포맷(CONVERT) (0) | 2023.02.24 |
---|---|
[MS-SQL] MSSQL 설치 - Windows (0) | 2023.02.23 |
[MS-SQL] Procedure내 테이블 사용 조회 (0) | 2023.01.18 |
[MS-SQL] Lock 회피 (0) | 2023.01.18 |
[MS-SQL] 테이블 정보 조회 (0) | 2023.01.03 |
Comments