SELECT CHARINDEX('1', '2,11')
이렇게 하면 결과값이 3으로 출력 됩니다. 제가 원하는 결과값은 0으로 나와야 하는데, FUNCTION 을 사용하지 않고 하는 방법이 없을까 해서요..
Comment 4
-
팔개
2017.04.26 02:25
-
처리짱
2017.04.26 17:17
0은 어떻게해서 나오는거죠?
-
팔개
2017.04.26 22:35
0 이라는게 질문에서 말씀 하시는건지?
SELECT CHARINDEX('1', '2,11')
이렇게 할 경우 기본적으로 3이 나오는게 정상이지만,
1과 11을 비교 하였을 때 같은 값이 아니므로 최종의 결과값은 0 을 원하지만
charindex에서는 그게 되지 않아서 다른 방법이 없을까 해서 올렸습니다.
-
건우아빠
2017.04.27 00:28
질답에서 답글로 구분자로 검색하시면 찬고하실 사항이 있을듯 합니다.
함수를 이용하여 만들었습니다.
CREATE FUNCTION dbo.fn_ProductCertify(
@IDX INT,
@BPCidx VARCHAR(20)
)
RETURNS VARCHAR(50)
AS
BEGIN
DECLARE @INTBPCidx INT
DECLARE @II INT
DECLARE @STRBPCidx INT
SET @BPCidx = @BPCidx+','
SET @INTBPCidx = 1
SET @II = 1
DECLARE @BPCidxVAL VARCHAR(50);
WHILE (@II <= LEN(@BPCidx))
BEGIN
IF (@INTBPCidx <> 0)
BEGIN
SET @INTBPCidx = CHARINDEX(',', @BPCidx, @II)
SET @STRBPCidx = SUBSTRING(@BPCidx, @II, @INTBPCidx - @II)
SET @II = @INTBPCidx + 1
IF (@IDX = @STRBPCidx)
SET @BPCidxVAL = '1';
END
ELSE
BREAK
END
RETURN ISNULL(@BPCidxVAL,0)
END