# SQL 查ID ###### tags: `SQL` DECLARE @ID VARCHAR(10) = UPPER('A100987638'); DECLARE @ID11 VARCHAR(11) = ''; DECLARE @FL VARCHAR(1) ; DECLARE @FL_IDX INT ; DECLARE @CONST VARCHAR(11) = '19876543211'; DECLARE @CODETXT VARCHAR(100) = 'A10,B11,C12,D13,E14,F15,G16,H17,I34,J18,K19,L20,M21,N22,O35,P23,Q24,R25,S26,T27,U28,V29,X30,Y31'; DECLARE @NUM VARCHAR(2); DECLARE @TOT INT = 0; DECLARE @CNT INT = 1; SET @FL=SUBSTRING(@ID,1,1); SET @FL_IDX=CHARINDEX(@FL,@CODETXT); SET @NUM=SUBSTRING(@CODETXT,@FL_IDX+1,2); SET @ID11=@NUM+SUBSTRING(@ID,2,9); PRINT @ID11; WHILE @CNT <= 11 BEGIN SET @TOT = @TOT + ( CAST(SUBSTRING(@ID11,@CNT,1) AS INT) * CAST(SUBSTRING(@CONST,@CNT,1) AS INT )); SET @CNT += 1; END IF (@TOT%10) = 0 PRINT '合法' ELSE PRINT '不合法'