DATETIME SELECT SELECT INTO DATE PAD STRING DYNAMIC SQL CURSOR MONEY FORMAT PERCENT STORED PROCEDURE SQL SERVER AGENT JOB OPTIMIZATION WHILE LOOP OVER PARTITION BY UPDATE
 
 
SITE SEARCH SQLUSA.com VIDEOS
 
 
SQL E/BOOKS   WORLD, USA & SQL NEWS   FORMAT
SCRIPTS SQL 2005 SQL 2008 ARTICLES
How to cleanse and standard format phone numbers?

Execute the following SQL Server T-SQL script in SSMS Query Editor to create a phone number cleansing and formatting function; Test it on the Person.Contact table:

USE AdventureWorks;

GO

-- T-SQL user-defined function - UDF - scalar-valued function

-- SQL format phone number string to standard telephone number format

CREATE FUNCTION fnStandardPhone

               (@PhoneNumber VARCHAR(32))

RETURNS VARCHAR(32)

AS

  BEGIN

    DECLARE  @Phone CHAR(32)

    

    SET @Phone = @PhoneNumber

    

    -- cleanse phone number string

    WHILE PATINDEX('%[^0-9]%',@PhoneNumber) > 0

      SET @PhoneNumber = REPLACE(@PhoneNumber,

               SUBSTRING(@PhoneNumber,PATINDEX('%[^0-9]%',@PhoneNumber),1),'')

    

    -- skip foreign phones

    IF (SUBSTRING(@PhoneNumber,1,1) = '1'

         OR SUBSTRING(@PhoneNumber,1,1) = '+'

         OR SUBSTRING(@PhoneNumber,1,1) = '0')

       AND LEN(@PhoneNumber) > 11

      RETURN @Phone

    

    -- build US standard phone number

    SET @Phone = @PhoneNumber

    

    SET @PhoneNumber = '(' + SUBSTRING(@PhoneNumber,1,3) + ') ' +

             SUBSTRING(@PhoneNumber,4,3) + '-' + SUBSTRING(@PhoneNumber,7,4)

    

    IF LEN(@Phone) - 10 > 1

      SET @PhoneNumber = @PhoneNumber + ' X' + SUBSTRING(@Phone,11,LEN(@Phone) - 10)

    

    RETURN @PhoneNumber

  END

GO

 

SELECT   FullName=FirstName + ' ' + LastName,

         [Standard Phone] = dbo.fnStandardPhone(Phone),

         [Non-Standard] = Phone

FROM     Person.Contact

ORDER BY LastName,

         FirstName

GO

/*

FullName          Standard Phone    Non-Standard

Syed Abbas        (926) 555-0182    926-555-0182

Catherine Abel    (747) 555-0171    747-555-0171

Kim Abercrombie   (334) 555-0137    334-555-0137

Kim Abercrombie   (208) 555-0114    208-555-0114
.....

*/

Exam Prep 70-461
SQL 2016 DESIGN & PROGRAMMING
 
 
 
DATETIME SELECT SELECT INTO DATE PAD STRING DYNAMIC SQL CURSOR MONEY FORMAT PERCENT STORED PROCEDURE SQL SERVER AGENT JOB OPTIMIZATION WHILE LOOP OVER PARTITION BY UPDATE