Sql 创建了这个过程,当我执行时,我没有得到预期的结果

Sql 创建了这个过程,当我执行时,我没有得到预期的结果,sql,stored-procedures,Sql,Stored Procedures,我已经创建了这个过程,我并没有把所有的记录都拿出来。它应该打印id、ssn和ValidSSN。ValidSSN应来自case语句,其中正在检查SSN是否有效。你能告诉我为什么吗 与我从中提取的表匹配的其他记录数,但ValidSSN没有结果。所以我会得到: id-12356 ssn-456454564(假) validsn-NULL 下游还有600万排 create procedure ##Validate_SSN as begin drop table if exists ##SSN_Ra

我已经创建了这个过程,我并没有把所有的记录都拿出来。它应该打印id、ssn和ValidSSN。ValidSSN应来自case语句,其中正在检查SSN是否有效。你能告诉我为什么吗

与我从中提取的表匹配的其他记录数,但ValidSSN没有结果。所以我会得到:

id-12356
ssn-456454564(假)
validsn-NULL

下游还有600万排

create procedure ##Validate_SSN


as

begin
drop table if exists ##SSN_RangeList;
drop table if exists ##SSN_Results;

SET NOCOUNT ON;

CREATE TABLE  ##SSN_RangeList 
(
    [AreaCode] [smallint] NOT NULL,
    [GroupCode] [tinyint] NOT NULL
)  

insert into ##SSN_RangeList
values
(1, 11),(2,8),(3,8),(4,13),(5,11),(6,11),(7,11),(8,94),(9,92),(10,94),(11,94)
,(12,94),(13,94),(14,94),(15,94),(16,92),(17,92),(18,92),(19,92),(20,92),(21,92)
,(22,92),(23,92),(24,92),(25,92),(26,92),(27,92),(28,92),(29,92),(30,92),(31,92),(32,92)
,(33,92),(34,92),(35,74),(36,74),(37,74),(38,74),(39,72),(40,15),(41,15),(42,15),(43,15),(44,15)
,(45,15),(46,15),(47,13),(48,13),(49,13),(50,2),(51,2),(52,2),(53,2),(54,2),(55,2),(56,2)
,(57,2),(58,2),(59,2),(60,2),(61,2),(62,2),(63,2),(64,2),(65,2),(66,2),(67,2),(68,2)
,(69,2),(70,2),(71,2),(72,2),(73,2),(74,2),(75,2),(76,2),(77,2),(78,2),(79,2),(80,2)
,(81,2),(82,98),(83,98),(84,98),(85,98),(86,98),(87,98),(88,98),(89,98),(90,98),(91,98)
,(92,98),(93,98),(94,98),(95,98),(96,98),(97,98),(98,98),(99,98),(100,98),(101,98),(102,98)
,(103,98),(104,98),(105,98),(106,98),(107,98),(108,98),(109,98),(110,98),(111,98),(112,98)
,(113,98),(114,98),(115,98),(116,98),(117,98),(118,98),(119,98),(120,98),(121,98),(122,98)
,(123,98),(124,98),(125,98),(126,98),(127,98),(128,98),(129,98),(130,98),(131,98),(132,98)
,(133,98),(134,98),(135,23),(136,23),(137,23),(138,23),(139,23),(140,23),(141,23),(142,23),(143,23)
,(144,23),(145,23),(146,23),(147,23),(148,23),(149,23),(150,23),(151,23),(152,23),(153,21),(154,21)
,(155,21),(156,21),(157,21),(158,21),(159,86),(160,86),(161,86),(162,86),(163,86),(164,86),(165,86)
,(166,86),(167,86),(168,86),(169,86),(170,86),(171,86),(172,86),(173,86),(174,86),(175,86),(176,86)
,(177,86),(178,86),(179,86),(180,86),(181,86),(182,86),(183,86),(184,84),(185,86),(186,86),(187,84)
,(188,86),(189,84),(190,84),(191,84),(192,84),(193,84),(194,84),(195,84),(196,84),(197,84),(198,84)
,(199,84),(200,84),(201,84),(202,84),(203,84),(204,84),(205,84),(206,84),(207,84),(208,84),(209,84)
,(210,84),(211,84),(212,89),(213,89),(214,89),(215,89),(216,89),(217,87),(218,87),(219,87),(220,87)
,(221,11),(222,11),(223,99),(224,99),(225,99),(226,99),(227,99),(228,99),(229,99),(230,99),(231,99)
,(232,57),(233,57),(234,55),(235,55),(236,55),(237,99),(238,99),(239,99),(240,99),(241,99),(242,99)
,(243,99),(244,99),(245,99),(246,99),(247,99),(248,99),(249,99),(250,99),(251,99),(252,99),(253,99)
,(254,99),(255,99),(256,99),(257,99),(258,99),(259,99),(260,99),(261,99),(262,99),(263,99),(264,99)
,(265,99),(266,99),(267,99),(268,17),(269,17),(270,15),(271,15),(272,15),(273,15),(274,15),(275,15)
,(276,15),(277,15),(278,15),(279,15),(280,15),(281,15),(282,15),(283,15),(284,15),(285,15),(286,15)
,(287,15),(288,15),(289,15),(290,15),(291,15),(292,15),(293,15),(294,15),(295,15),(296,15),(297,15)
,(298,15),(299,15),(300,15),(301,15),(302,15),(303,37),(304,37),(305,37),(306,35),(307,35),(308,35)
,(309,35),(310,35),(311,35),(312,35),(313,35),(314,35),(315,35),(316,35),(317,35),(318,11),(319,11)
,(320,11),(321,11),(322,11),(323,11),(324,11),(325,11),(326,11),(327,11),(328,11),(329,11),(330,11)
,(331,11),(332,11),(333,11),(334,11),(335,8),(336,8),(337,8),(338,8),(339,8),(340,8),(341,8),(342,8)
,(343,8),(344,8),(345,8),(346,8),(347,8),(348,8),(349,8),(350,8),(351,8),(352,8),(353,8),(354,8)
,(355,8),(356,8),(357,8),(358,8),(359,8),(360,8),(361,8),(362,39),(363,37),(364,37),(365,37),(366,37)
,(367,37),(368,37),(369,37),(370,37),(371,37),(372,37),(373,37),(374,37),(375,37),(376,37),(377,37)
,(378,37),(379,37),(380,37),(381,37),(382,37),(383,37),(384,37),(385,37),(386,37),(387,33),(388,33)
,(389,33),(390,33),(391,33),(392,33),(393,33),(394,31),(395,31),(396,31),(397,31),(398,31),(399,31)
,(400,73),(401,73),(402,73),(403,73),(404,73),(405,71),(406,71),(407,71),(408,99),(409,99),(410,99)
,(411,99),(412,99),(413,99),(414,99),(415,99),(416,67),(417,67),(418,67),(419,67),(420,67)
,(421,65),(422,65),(423,65),(424,65),(425,99),(426,99),(427,99),(428,99),(429,99),(430,99),(431,99)
,(432,99),(433,99),(434,99),(435,99),(436,99),(437,99),(438,99),(439,99),(440,27),(441,27),(442,27)
,(443,27),(444,27),(445,27),(446,27),(447,27),(448,25),(449,99),(450,99),(451,99),(452,99),(453,99)
,(454,99),(455,99),(456,99),(457,99),(458,99),(459,99),(460,99),(461,99),(462,99),(463,99),(464,99)
,(465,99),(466,99),(467,99),(468,55),(469,55),(470,55),(471,55),(472,55),(473,55),(474,55),(475,55)
,(476,55),(477,55),(478,41),(479,41),(480,41),(481,41),(482,41),(483,41),(484,39),(485,39),(486,29)
,(487,29),(488,29),(489,29),(490,29),(491,29),(492,29),(493,29),(494,29),(495,29),(496,27),(497,27)
,(498,27),(499,27),(500,27),(501,37),(502,35),(503,45),(504,43),(505,57),(506,57),(507,57),(508,55)
,(509,33),(510,31),(511,31),(512,31),(513,31),(514,31),(515,31),(516,49),(517,49),(518,87),(519,85)
,(520,61),(521,99),(522,99),(523,99),(524,99),(525,99),(526,99),(527,99),(528,99),(529,99),(530,99)
,(531,71),(532,71),(533,69),(534,69),(535,69),(536,69),(537,69),(538,69),(539,69),(540,81),(541,81)
,(542,81),(543,81),(544,79),(545,99),(546,99),(547,99),(548,99),(549,99),(550,99),(551,99),(552,99)
,(553,99),(554,99),(555,99),(556,99),(557,99),(558,99),(559,99),(560,99),(561,99),(562,99),(563,99)
,(564,99),(565,99),(566,99),(567,99),(568,99),(569,99),(570,99),(571,99),(572,99),(573,99),(574,61)
,(575,99),(576,99),(577,53),(578,51),(579,51),(580,39),(581,99),(582,99),(583,99),(584,99),(585,99)
,(586,67),(587,99),(588,7),(589,99),(590,99),(591,99),(592,99),(593,99),(594,99),(595,99),(596,92)
,(597,92),(598,90),(599,90),(600,99),(601,99),(602,85),(603,85),(604,85),(605,85),(606,83),(607,83)
,(608,83),(609,83),(610,83),(611,83),(612,83),(613,83),(614,83),(615,83),(616,83),(617,83),(618,83)
,(619,83),(620,83),(621,83),(622,83),(623,83),(624,83),(625,83),(626,83),(627,29),(628,29),(629,27)
,(630,27),(631,27),(632,27),(633,27),(634,27),(635,27),(636,27),(637,27),(638,27),(639,27),(640,27)
,(641,27),(642,27),(643,27),(644,27),(645,27),(646,19),(647,19),(648,56),(649,54),(650,60),(651,60)
,(652,60),(653,58),(654,36),(655,36),(656,36),(657,34),(658,34),(659,22),(660,22),(661,22),(662,22)
,(663,20),(664,20),(665,20),(667,48),(668,46),(669,46),(670,46),(671,46),(672,46),(673,46),(674,46)
,(675,46),(676,20),(677,20),(678,20),(679,20),(680,27),(681,24),(682,22),(683,22),(684,22),(685,22)
,(686,22),(687,22),(688,22),(689,22),(690,22),(691,16),(692,16),(693,16),(694,16),(695,14),(696,14)
,(697,14),(698,14),(699,14),(700,18),(701,18),(702,18),(703,18),(704,18),(705,18),(706,18),(707,18)
,(708,18),(709,18),(710,18),(711,18),(712,18),(713,18),(714,18),(715,18),(716,18),(717,18),(718,18)
,(719,18),(720,18),(721,18),(722,18),(723,18),(724,28),(725,18),(726,18),(727,10),(728,14),(729,26)
,(730,26),(731,24),(732,24),(733,24),(750,18),(751,16),(752,7),(753,7),(754,7),(755,5),(756,12)
,(757,12),(758,12),(759,10),(760,10),(761,10),(762,10),(763,10),(764,23),(765,21),(766,96),(767,96)
,(768,96),(769,96),(770,94),(771,94),(772,94)



declare @ValidSSN varchar(50) = null
declare @ssn nVARCHAR(50) = null
declare @id bigint = null

SELECT 
        s.SSN,id,
        CASE 
        WHEN ISNUMERIC(REPLACE(s.ssn, '-', '')) <> 1 OR Sequence = 0 OR HighGroup = 0 THEN 'Invalid SSN' 
        ELSE
            CASE WHEN Groupcode % 2 = 1 THEN --odd groupcode 
                CASE WHEN GroupCode <10 THEN 
                    CASE WHEN HighGroup % 2 = 1 AND HighGroup <= GroupCode THEN 'Valid SSN' 
                    ELSE 'Invalid SSN' 
                    END
                ELSE
                    CASE WHEN HighGroup % 2 = 0 THEN 'Valid SSN' 
                    WHEN HighGroup % 2 = 1 THEN 
                        CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    END
                END
            ELSE --even groupcode
                CASE WHEN GroupCode >= 10 THEN
                    CASE WHEN HighGroup %2 =1 THEN
                        CASE WHEN HighGroup <=9 THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    WHEN HighGroup %2 = 0 THEN
                        CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    END
                ELSE
                    CASE WHEN HighGroup %2 =1 THEN
                        CASE WHEN HighGroup <=9 THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    WHEN HighGroup %2 = 0 THEN 
                        CASE WHEN HighGroup >=10 THEN 'Valid SSN' 
                        WHEN HighGroup < 10 THEN 
                            CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                        END
                    END
                END
            END
        END ValidSSN 
FROM 
(
SELECT 
    LEFT(REPLICATE('0', 9 - LEN(LTRIM(REPLACE(@ssn, '-', '')))) + REPLACE(@ssn, '-', ''), 3) Area,
    SUBSTRING(REPLICATE('0', 9 - LEN(LTRIM(REPLACE(@ssn, '-', '')))) + REPLACE(@ssn, '-', ''), 4, 2) HighGroup,
    RIGHT(REPLICATE('0', 9 - LEN(REPLACE(@ssn, '-', ''))) + REPLACE(@ssn, '-', ''), 4) Sequence,
    REPLICATE('0', 9 - LEN(REPLACE(@ssn, '-', ''))) + REPLACE(@ssn, '-', '') SSN
) v
LEFT JOIN ##SSN_RangeList sr
ON v.Area = CAST(sr.AreaCode AS VARCHAR(3)) 
join [infoarmor_secure].[subscribers]s on s.ssn = s.ssn

print @id
print @ssn
print @ValidSSN 
end
;
create procedure##Validate#SSN
作为
开始
删除表格(如果存在)##SSN#U范围列表;
删除表格(如果存在)##SSN_结果;
不计数;
创建表##SSN#U范围列表
(
[AreaCode][smallint]不为空,
[GroupCode][tinyint]不为空
)  
插入到##SSN#U范围列表中
价值观
(1, 11),(2,8),(3,8),(4,13),(5,11),(6,11),(7,11),(8,94),(9,92),(10,94),(11,94)
,(12,94),(13,94),(14,94),(15,94),(16,92),(17,92),(18,92),(19,92),(20,92),(21,92)
,(22,92),(23,92),(24,92),(25,92),(26,92),(27,92),(28,92),(29,92),(30,92),(31,92),(32,92)
,(33,92),(34,92),(35,74),(36,74),(37,74),(38,74),(39,72),(40,15),(41,15),(42,15),(43,15),(44,15)
,(45,15),(46,15),(47,13),(48,13),(49,13),(50,2),(51,2),(52,2),(53,2),(54,2),(55,2),(56,2)
,(57,2),(58,2),(59,2),(60,2),(61,2),(62,2),(63,2),(64,2),(65,2),(66,2),(67,2),(68,2)
,(69,2),(70,2),(71,2),(72,2),(73,2),(74,2),(75,2),(76,2),(77,2),(78,2),(79,2),(80,2)
,(81,2),(82,98),(83,98),(84,98),(85,98),(86,98),(87,98),(88,98),(89,98),(90,98),(91,98)
,(92,98),(93,98),(94,98),(95,98),(96,98),(97,98),(98,98),(99,98),(100,98),(101,98),(102,98)
,(103,98),(104,98),(105,98),(106,98),(107,98),(108,98),(109,98),(110,98),(111,98),(112,98)
,(113,98),(114,98),(115,98),(116,98),(117,98),(118,98),(119,98),(120,98),(121,98),(122,98)
,(123,98),(124,98),(125,98),(126,98),(127,98),(128,98),(129,98),(130,98),(131,98),(132,98)
,(133,98),(134,98),(135,23),(136,23),(137,23),(138,23),(139,23),(140,23),(141,23),(142,23),(143,23)
,(144,23),(145,23),(146,23),(147,23),(148,23),(149,23),(150,23),(151,23),(152,23),(153,21),(154,21)
,(155,21),(156,21),(157,21),(158,21),(159,86),(160,86),(161,86),(162,86),(163,86),(164,86),(165,86)
,(166,86),(167,86),(168,86),(169,86),(170,86),(171,86),(172,86),(173,86),(174,86),(175,86),(176,86)
,(177,86),(178,86),(179,86),(180,86),(181,86),(182,86),(183,86),(184,84),(185,86),(186,86),(187,84)
,(188,86),(189,84),(190,84),(191,84),(192,84),(193,84),(194,84),(195,84),(196,84),(197,84),(198,84)
,(199,84),(200,84),(201,84),(202,84),(203,84),(204,84),(205,84),(206,84),(207,84),(208,84),(209,84)
,(210,84),(211,84),(212,89),(213,89),(214,89),(215,89),(216,89),(217,87),(218,87),(219,87),(220,87)
,(221,11),(222,11),(223,99),(224,99),(225,99),(226,99),(227,99),(228,99),(229,99),(230,99),(231,99)
,(232,57),(233,57),(234,55),(235,55),(236,55),(237,99),(238,99),(239,99),(240,99),(241,99),(242,99)
,(243,99),(244,99),(245,99),(246,99),(247,99),(248,99),(249,99),(250,99),(251,99),(252,99),(253,99)
,(254,99),(255,99),(256,99),(257,99),(258,99),(259,99),(260,99),(261,99),(262,99),(263,99),(264,99)
,(265,99),(266,99),(267,99),(268,17),(269,17),(270,15),(271,15),(272,15),(273,15),(274,15),(275,15)
,(276,15),(277,15),(278,15),(279,15),(280,15),(281,15),(282,15),(283,15),(284,15),(285,15),(286,15)
,(287,15),(288,15),(289,15),(290,15),(291,15),(292,15),(293,15),(294,15),(295,15),(296,15),(297,15)
,(298,15),(299,15),(300,15),(301,15),(302,15),(303,37),(304,37),(305,37),(306,35),(307,35),(308,35)
,(309,35),(310,35),(311,35),(312,35),(313,35),(314,35),(315,35),(316,35),(317,35),(318,11),(319,11)
,(320,11),(321,11),(322,11),(323,11),(324,11),(325,11),(326,11),(327,11),(328,11),(329,11),(330,11)
,(331,11),(332,11),(333,11),(334,11),(335,8),(336,8),(337,8),(338,8),(339,8),(340,8),(341,8),(342,8)
,(343,8),(344,8),(345,8),(346,8),(347,8),(348,8),(349,8),(350,8),(351,8),(352,8),(353,8),(354,8)
,(355,8),(356,8),(357,8),(358,8),(359,8),(360,8),(361,8),(362,39),(363,37),(364,37),(365,37),(366,37)
,(367,37),(368,37),(369,37),(370,37),(371,37),(372,37),(373,37),(374,37),(375,37),(376,37),(377,37)
,(378,37),(379,37),(380,37),(381,37),(382,37),(383,37),(384,37),(385,37),(386,37),(387,33),(388,33)
,(389,33),(390,33),(391,33),(392,33),(393,33),(394,31),(395,31),(396,31),(397,31),(398,31),(399,31)
,(400,73),(401,73),(402,73),(403,73),(404,73),(405,71),(406,71),(407,71),(408,99),(409,99),(410,99)
,(411,99),(412,99),(413,99),(414,99),(415,99),(416,67),(417,67),(418,67),(419,67),(420,67)
,(421,65),(422,65),(423,65),(424,65),(425,99),(426,99),(427,99),(428,99),(429,99),(430,99),(431,99)
,(432,99),(433,99),(434,99),(435,99),(436,99),(437,99),(438,99),(439,99),(440,27),(441,27),(442,27)
,(443,27),(444,27),(445,27),(446,27),(447,27),(448,25),(449,99),(450,99),(451,99),(452,99),(453,99)
,(454,99),(455,99),(456,99),(457,99),(458,99),(459,99),(460,99),(461,99),(462,99),(463,99),(464,99)
,(465,99),(466,99),(467,99),(468,55),(469,55),(470,55),(471,55),(472,55),(473,55),(474,55),(475,55)
,(476,55),(477,55),(478,41),(479,41),(480,41),(481,41),(482,41),(483,41),(484,39),(485,39),(486,29)
,(487,29),(488,29),(489,29),(490,29),(491,29),(492,29),(493,29),(494,29),(495,29),(496,27),(497,27)
,(498,27),(499,27),(500,27),(501,37),(502,35),(503,45),(504,43),(505,57),(506,57),(507,57),(508,55)
,(509,33),(510,31),(511,31),(512,31),(513,31),(514,31),(515,31),(516,49),(517,49),(518,87),(519,85)
,(520,61),(521,99),(522,99),(523,99),(524,99),(525,99),(526,99),(527,99),(528,99),(529,99),(530,99)
,(531,71),(532,71),(533,69),(534,69),(535,69),(536,69),(537,69),(538,69),(539,69),(540,81),(541,81)
,(542,81),(543,81),(544,79),(545,99),(546,99),(547,99),(548,99),(549,99),(550,99),(551,99),(552,99)
,(553,99),(554,99),(555,99),(556,99),(557,99),(558,99),(559,99),(560,99),(561,99),(562,99),(563,99)
,(564,99),(565,99),(566,99),(567,99),(568,99),(569,99),(570,99),(571,99),(572,99),(573,99),(574,61)
,(575,99),(576,99),(577,53),(578,51),(579,51),(580,39),(581,99),(582,99),(583,99),(584,99),(585,99)
,(586,67),(587,99),(588,7),(589,99),(590,99),(591,
join [infoarmor_secure].[subscribers]s on s.ssn = s.ssn
SELECT REPLICATE('0', 9 - LEN(REPLACE(@ssn, '-', ''))) + REPLACE(@ssn, '-', '') SSN;
declare @ssn NVARCHAR(50) = '456454564';

SELECT 
        @ssn AS Orig_SSN,
        v.SSN, 
        -- id,
        CASE 
        WHEN ISNUMERIC(REPLACE(v.ssn, '-', '')) <> 1 OR Sequence = 0 OR HighGroup = 0 THEN 'Invalid SSN' 
        ELSE
            CASE WHEN Groupcode % 2 = 1 THEN --odd groupcode 
                CASE WHEN GroupCode <10 THEN 
                    CASE WHEN HighGroup % 2 = 1 AND HighGroup <= GroupCode THEN 'Valid SSN' 
                    ELSE 'Invalid SSN' 
                    END
                ELSE
                    CASE WHEN HighGroup % 2 = 0 THEN 'Valid SSN' 
                    WHEN HighGroup % 2 = 1 THEN 
                        CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    END
                END
            ELSE --even groupcode
                CASE WHEN GroupCode >= 10 THEN
                    CASE WHEN HighGroup %2 =1 THEN
                        CASE WHEN HighGroup <=9 THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    WHEN HighGroup %2 = 0 THEN
                        CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    END
                ELSE
                    CASE WHEN HighGroup %2 =1 THEN
                        CASE WHEN HighGroup <=9 THEN 'Valid SSN' ELSE 'Invalid SSN' END
                    WHEN HighGroup %2 = 0 THEN 
                        CASE WHEN HighGroup >=10 THEN 'Valid SSN' 
                        WHEN HighGroup < 10 THEN 
                            CASE WHEN HighGroup <= GroupCode THEN 'Valid SSN' ELSE 'Invalid SSN' END
                        END
                    END
                END
            END
        END ValidSSN 
FROM 
(
SELECT 
    LEFT(REPLICATE('0', 9 - LEN(LTRIM(REPLACE(@ssn, '-', '')))) + REPLACE(@ssn, '-', ''), 3) Area,
    SUBSTRING(REPLICATE('0', 9 - LEN(LTRIM(REPLACE(@ssn, '-', '')))) + REPLACE(@ssn, '-', ''), 4, 2) HighGroup,
    RIGHT(REPLICATE('0', 9 - LEN(REPLACE(@ssn, '-', ''))) + REPLACE(@ssn, '-', ''), 4) Sequence,
    REPLICATE('0', 9 - LEN(REPLACE(@ssn, '-', ''))) + REPLACE(@ssn, '-', '') SSN
) v
LEFT JOIN #SSN_RangeList sr
ON v.Area = CAST(sr.AreaCode AS VARCHAR(3));
Orig_SSN     SSN        ValidSSN
456454564    456454564  Valid SSN
Orig_SSN     SSN        ValidSSN
156454564    156454564  Invalid SSN


Orig_SSN     SSN        ValidSSN
11456454564  NULL       Invalid SSN
SELECT 
        @ssn AS Orig_SSN,
        v.SSN, 
        -- id,
        CASE 
            WHEN ISNUMERIC(REPLACE(v.ssn, '-', '')) <> 1 OR Sequence = 0 OR HighGroup = 0 THEN 'Invalid SSN' 
            -- Odd groupcodes
            WHEN Groupcode % 2 = 1 AND GroupCode < 10 AND HighGroup % 2 = 1 AND HighGroup <= GroupCode THEN 'Valid SSN' 
            WHEN Groupcode % 2 = 1 AND GroupCode < 10 THEN 'Invalid SSN' 
            WHEN Groupcode % 2 = 1 AND HighGroup % 2 = 0 THEN 'Valid SSN'
            WHEN Groupcode % 2 = 1 AND HighGroup % 2 = 1 AND HighGroup <= GroupCode THEN 'Valid SSN'
            WHEN Groupcode % 2 = 1 AND HighGroup % 2 = 1 THEN 'Invalid SSN' 
            -- Even groupcodes
            WHEN GroupCode >= 10 AND HighGroup % 2 = 1 AND HighGroup <= 9 THEN 'Valid SSN'
            WHEN GroupCode >= 10 AND HighGroup % 2 = 1 THEN 'Invalid SSN'
            WHEN GroupCode >= 10 AND HighGroup % 2 = 0 AND HighGroup <= GroupCode THEN 'Valid SSN'
            WHEN GroupCode >= 10 AND HighGroup % 2 = 0 THEN 'Invalid SSN'
            WHEN HighGroup % 2 = 1 AND HighGroup <= 9 THEN 'Valid SSN'
            WHEN HighGroup % 2 = 1 THEN 'Invalid SSN'
            WHEN HighGroup % 2 = 0 AND HighGroup >= 10 THEN 'Valid SSN' 
            WHEN HighGroup % 2 = 0 AND HighGroup < 10 AND HighGroup <= GroupCode THEN 'Valid SSN'
            WHEN HighGroup % 2 = 0 AND HighGroup < 10 THEN 'Invalid SSN'
            ELSE NULL END AS ValidSSN