일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- port_#0003.hub_#0004
- intel 내장 그래픽
- 아이폰 신용카드 등록 불가
- torrent 무료버전 광고 없애기
- windows 10 설치하기
- CVV값 입력횟수초과 오류
- FM영화음악
- radeon graphic
- MSSQL
- 떡판 커플러 유격 조정
- 조세이
- LG노트북 드라이버
- 부팅시 검은화면
- 애플 결제수단 등록 오류
- enableulps
- torrent 광고 없애기
- 정은임
- CVC값 입력횟수초과 오류
- 카캐리어
- 체크디지트 생성 함수
- 라데온 외장 그래픽
- 윈도우10 내장 외장 그래픽
- 삼성울트라북
- Windows 10 설치 따라하기
- GIF
- 유격조정
- 블루투스드라이버
- 불편 광고 없애기
- 아이폰 국가번호 없애기
- 이 지불방법을 사용할 수 없습니다
- Today
- Total
SunnyDB
MS-SQL 체크디지트 생성함수-return all 본문
ALTER FUNCTION [dbo].[to_checkdigita] (@v_pos_code varchar(20))
RETURNS varchar(20)
as
begin
declare @v_checkdigit varchar(20),
@v_pos_code2 varchar(20),
@v_idx integer,
@v_sum integer,
@v_mok integer,
@nLoop integer
select @v_idx = 0, @v_sum = 0, @v_mok = 0, @nLoop = 0
select @v_checkdigit = '', @v_pos_code = RTrim(Ltrim(@v_pos_code))
if charindex('.', @v_pos_code) > 0 RETURN @v_pos_code + @v_checkdigit
if IsNumeric(@v_pos_code) = 0 RETURN @v_pos_code + @v_checkdigit
if ( Len(@v_pos_code) % 2 = 1 ) set @v_pos_code2 = '0' + @v_pos_code;
While @nLoop < Len(@v_pos_code2)
begin
select @nLoop = @nLoop + 1
if (@nLoop % 2) = 0
select @v_sum = @v_sum + (cast( substring(@v_pos_code2,@nLoop,1) as integer ) * 3)
else
select @v_sum = @v_sum + (cast( substring(@v_pos_code2,@nLoop,1) as integer ) * 1)
end
select @v_mok = @v_sum % 10
if @v_mok = 0
select @v_checkdigit = cast(@v_mok as varchar(1))
else
select @v_checkdigit = cast((10 - @v_mok) as varchar(1))
RETURN @v_pos_code + @v_checkdigit
END
'MS-SQL Tip' 카테고리의 다른 글
MS SQL 텍스트 날짜형식의 요일반환 '20180101' -> ?요일 (0) | 2018.10.05 |
---|---|
MS-SQL 숫자 앞 '0' 채우기 (0) | 2018.08.17 |
MS-SQL 체크디지트 생성 함수-retrun 1 (0) | 2018.08.17 |
MS-SQL Table Description 확인 (0) | 2018.08.17 |
MS-SQL 인덱스 재생성 프로시져 (0) | 2018.08.17 |