ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MS-SQL 주민번호 체크 쿼리
    프로그램/Mssql 2024. 1. 23. 11:49
    336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    ALTER FUNCTION [dbo].[uf_jNo_Check](@number char(13))
    RETURNS char(13)
    BEGIN 
    --Set Nocount on 
    DECLARE @returnValue as char(1), @value int
    SELECT @returnValue='0'

    IF @number NOT LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
    RETURN @returnValue

    SELECT @value=0
    SELECT @value=@value+substring(@number,1,1)*2
    SELECT @value=@value+substring(@number,2,1)*3
    SELECT @value=@value+substring(@number,3,1)*4
    SELECT @value=@value+substring(@number,4,1)*5
    SELECT @value=@value+substring(@number,5,1)*6
    SELECT @value=@value+substring(@number,6,1)*7
    SELECT @value=@value+substring(@number,7,1)*8
    SELECT @value=@value+substring(@number,8,1)*9
    SELECT @value=@value+substring(@number,9,1)*2
    SELECT @value=@value+substring(@number,10,1)*3
    SELECT @value=@value+substring(@number,11,1)*4
    SELECT @value=@value+substring(@number,12,1)*5

    if substring(@number,7,1) < 5
    BEGIN
    --내국인 체크
    SELECT @value=(11-(@value%11))%10
    IF (convert(char(1),@value)=substring(@number,13,1) 
    and isdate(convert(char(2),(((convert(int,substring(@number,7,1))+1)%10)/2+18))+substring(@number,1,6))=1 
    and substring(@number,7,1) in ('0','1','2','3','4','9')
    and len(@number)=13)
    BEGIN
    SELECT @returnValue='1'
    END
    END


    if substring(@number,7,1) > 4
    BEGIN
    --재외국인 체크
    SELECT @value=(11-(@value%11))
    if (substring(@number,8,1)*10+substring(@number,9,1))%2 <> 0
    Return @returnValue+substring(@number,6,1)

    if substring(@number,12,1)<>6 and substring(@number,12,1)<>7 and substring(@number,12,1)<>8 and substring(@number,12,1)<>9
    Return @returnValue

    if @value >= 10
    select @value=@value-10

    select @value=@value+2

    if @value >= 10
    select @value=@value-10

    if convert(char(1),@value)<>substring(@number,13,1)
    Return @returnValue

    BEGIN
    SELECT @returnValue='1'
    END
    END


    RETURN @returnValue

    --Set nocount Off
    END

    '프로그램 > Mssql' 카테고리의 다른 글

    MS-SQL 테이블 용량(크기) 확인 하는 방법  (0) 2024.01.23
    MS-SQL 커서 활용법 Cursor  (0) 2024.01.23
    MS-SQL 프로시져 내용 검색  (0) 2024.01.23
    MS-SQL 배열을 이용한 프로시저  (1) 2024.01.23
    MS-SQL sp_lock  (0) 2024.01.23
Designed by Tistory.