일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 한글입력체크
- VARIABLE
- asp함수
- 정규식
- array
- xmldom
- injection
- 자바기초
- javascript 한글입력체크
- inner join
- sql업데이트
- ERD
- join
- tempDB
- FileSystemObject
- sql순위
- XML
- 이미지세로길이
- sql랭킹
- 이미지가로길이
- SPLIT
- VarType
- MSSQL보안
- jdbc driver
- wap
- 인젝션
- update
- JavaScript
- WML
- instr
- Today
- Total
3초기억력
MSSQL 함수 - asp 에서 split 같은 효과 + 인덱스번호따기 본문
제목 : MSSQL 함수 - asp 에서 split 같은 효과 + 인덱스번호따기
-- Description: <문자열을 특정문자로 SPLIT 처리>
-- =============================================
CREATE FUNCTION [dbo].[keyword_Split](@strValue NVARCHAR(4000), @splitChar NVARCHAR(1)) -- 분리 문자열, 구분 문자
RETURNS @split_Temp Table(num INT, val NVARCHAR(4000))
AS
BEGIN
DECLARE @oPos INT, @nPos INT, @i INT
DECLARE @tempVar NVARCHAR(4000) -- 분리된 문자열 임시 저장변수
SET @oPos = 1 -- 구분문자 검색을 시작할 위치
SET @nPos = 1 -- 구분문자 위치
SET @i = 0
WHILE(@nPos > 0)
BEGIN
SET @nPos = CHARINDEX(@splitChar, @strValue, @oPos)
IF @nPos = 0
SET @tempVar = RIGHT(@strValue, LEN(@strValue) - @oPos + 1)
ELSE
SET @tempVar = SUBSTRING(@strValue, @oPos, @nPos - @oPos)
IF LEN(@tempVar) > 0
INSERT INTO @split_Temp VALUES(@i, @tempVar)
SET @oPos = @nPos + 1
SET @i = @i + 1
END
RETURN
END
-- 사용법
-- SELECT * FROM keyword_Split('빨강|노랑|파랑|빨강|노랑|', '|')
-- SELECT * FROM keyword_Split('A,B,C,D,A', ',')
내용 : split 하여 각 인덱스번호를 따준다.
출처 :
'쿼리_MSSQL' 카테고리의 다른 글
ms-sql 날짜 관련 쿼리문. 기본 (0) | 2012.12.26 |
---|---|
MS-SQL : 테이블 사용자 를 변경하고 싶을때 (0) | 2011.08.30 |
MS-MQL : 암호화, 암호화 컬럼 비교 ( PwdEncrypt, PwdCompare ) (0) | 2011.08.16 |
Oracle - insert, update 한번에 처리하는 쿼리문 (0) | 2011.04.28 |
오라클 - case 문 (0) | 2011.04.08 |