﻿<?xml version='1.0' encoding='UTF-8'?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>SQLServerCentral / Article Discussions / Discuss content posted by Al Siks / Article Discussions by Author  / How to Validate Bank Routing Using Check Digit / Latest Posts</title><generator>InstantForum.NET v2.9.0</generator><description>SQLServerCentral</description><link>http://www.sqlservercentral.com/Forums/</link><webMaster>notifications@sqlservercentral.com</webMaster><lastBuildDate>Wed, 19 Jun 2013 17:30:05 GMT</lastBuildDate><ttl>20</ttl><item><title>RE: How to Validate Bank Routing Using Check Digit</title><link>http://www.sqlservercentral.com/Forums/Topic404540-510-1.aspx</link><description>You made the mistake of using ISNUMERIC to check for digits.  ISNUMERIC does not equal ISALLDIGITS... try this and see what I mean...SELECT dbo.check_digit('072---326')Rather than just have it return a check digit, why not have it validate the ABA routing number altogether?  For example...[code][font="Courier New"][size="2"][color="blue"]DECLARE [/color][color="#434343"]@RoutingNumber [/color][color="blue"]VARCHAR[/color][color="gray"]([/color][color="black"]8000[/color][color="gray"]) [/color][color="green"]--Allows check of wrong size numbers&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]SET [/color][color="#434343"]@RoutingNumber [/color][color="blue"]= [/color][color="red"]'067803457' [/color][color="blue"]SELECT [/color][color="magenta"]CASE&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]WHEN [/color][color="magenta"]LEN[/color][color="gray"]([/color][color="#434343"]@RoutingNumber[/color][color="gray"])[/color][color="blue"]=[/color][color="black"]9&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="gray"]AND [/color][color="#434343"]@RoutingNumber [/color][color="gray"]NOT LIKE [/color][color="red"]'%[^0-9]%' [/color][color="green"]--Check to make sure is all digits&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="gray"]AND [/color][color="magenta"]RIGHT[/color][color="gray"]([/color][color="#434343"]@RoutingNumber [/color][color="gray"],[/color][color="black"]1[/color][color="gray"])&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]= [/color][color="gray"]([/color][color="green"]--==== Calculates check digit (Digit 9)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]SELECT [/color][color="black"]10[/color][color="gray"]-[/color][color="magenta"]SUM[/color][color="gray"]([/color][color="black"]mv.DigitVal[/color][color="gray"])%[/color][color="black"]10 [/color][color="green"]--Sum of individual digit values subtracted for new number ending in 0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]FROM [/color][color="gray"]([/color][color="green"]--==== Gets multiplied value for each digit in 3, 7, 1 pattern&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]SELECT [/color][color="magenta"]CASE &amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]WHEN [/color][color="gray"]([/color][color="black"]t.N[/color][color="gray"]-[/color][color="black"]1[/color][color="gray"])%[/color][color="black"]3 [/color][color="blue"]= [/color][color="black"]0 [/color][color="blue"]THEN [/color][color="magenta"]SUBSTRING[/color][color="gray"]([/color][color="#434343"]@RoutingNumber[/color][color="gray"],[/color][color="black"]t.N[/color][color="gray"],[/color][color="black"]1[/color][color="gray"])*[/color][color="black"]3 [/color][color="green"]--Digits 1,4,7&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]WHEN [/color][color="gray"]([/color][color="black"]t.N[/color][color="gray"]-[/color][color="black"]1[/color][color="gray"])%[/color][color="black"]3 [/color][color="blue"]= [/color][color="black"]1 [/color][color="blue"]THEN [/color][color="magenta"]SUBSTRING[/color][color="gray"]([/color][color="#434343"]@RoutingNumber[/color][color="gray"],[/color][color="black"]t.N[/color][color="gray"],[/color][color="black"]1[/color][color="gray"])*[/color][color="black"]7 [/color][color="green"]--Digits 2,5,8&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]WHEN [/color][color="gray"]([/color][color="black"]t.N[/color][color="gray"]-[/color][color="black"]1[/color][color="gray"])%[/color][color="black"]3 [/color][color="blue"]= [/color][color="black"]2 [/color][color="blue"]THEN [/color][color="magenta"]SUBSTRING[/color][color="gray"]([/color][color="#434343"]@RoutingNumber[/color][color="gray"],[/color][color="black"]t.N[/color][color="gray"],[/color][color="black"]1[/color][color="gray"])*[/color][color="black"]1 [/color][color="green"]--Digits 3,6&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]END AS [/color][color="black"]DigitVal&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]FROM [/color][color="black"]dbo.Tally t [/color][color="green"]--See http://www.sqlservercentral.com/scripts/Advanced+SQL/62486/&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="blue"]WHERE [/color][color="black"]t.N [/color][color="gray"]&amp;lt;= [/color][color="black"]8&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="gray"]) [/color][color="black"]mv&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [/color][color="gray"])&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]THEN [/color][color="red"]'Valid'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]ELSE [/color][color="red"]'Not Valid'&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;[/color][color="blue"]END[/color][color="black"]go[/color][/size][/font][/code]</description><pubDate>Fri, 11 Apr 2008 23:26:30 GMT</pubDate><dc:creator>Jeff Moden</dc:creator></item><item><title>How to Validate Bank Routing Using Check Digit</title><link>http://www.sqlservercentral.com/Forums/Topic404540-510-1.aspx</link><description>Comments posted to this topic are about the item [B]&lt;A HREF="/scripts/Miscellaneous/31839/"&gt;How to Validate Bank Routing Using Check Digit&lt;/A&gt;[/B]</description><pubDate>Sat, 29 Sep 2007 20:53:13 GMT</pubDate><dc:creator>Al Siks</dc:creator></item></channel></rss>