Microsoft SQL s Transact- SQL har evnen til at tegne alfategn men lade numeriske tegn i en streng , det kræver blot at oprette en brugerdefineret funktion. Du ønsker måske at gøre dette i tilfælde, hvor der er et numerisk felt i databasen, og du ønsker at beskytte integriteten af din indsætte erklæring ved at rense op dataene , før du forsøger indsatsen. I de fleste tilfælde vil hele indsatsen erklæring mislykkes, hvis der er en alpha tegn i et numerisk felt . Instruktioner
1
Microsoft SQL , skal du oprette en brugerdefineret funktion som : Hej
CREATE FUNCTION dbo.UDF_NumericOnlyChars
(
@ string VARCHAR (8000)
)
VENDER TILBAGE VARCHAR (8000)
AS
BEGIN
DECLARE @ IncorrectCharLoc SMALLINT
< p > SET @ IncorrectCharLoc = PATINDEX ( '% [^ 0-9] % ' @ string )
MENS @ IncorrectCharLoc > 0
BEGIN
SET @ Numericstring = STUFF ( @ Numericstring @ IncorrectCharLoc , 1, '' )
SET @ IncorrectCharLoc = PATINDEX ( '% [^ 0-9] % « , @ Numericstring )
END
< p> Hvis ( @ Numericstring = '' )
SET @ Numericstring = '0 ' - Dette vil sikre , at en streng af tal er returneret
RETURN @ Numericstring
SLUT
GO
dette er baseret off af brugerdefineret funktion skabt af Pinal Dave
2
Brug funktionen som dette: .
< p . > Vælg [ dbo ] UDF_NumericOnlyChars ( ' sadDs132 # dds @ 19' )
Hvilket vil returnere : Hej
13219
3
Brug funktionen på en tabelkolonne til kun at returnere de numeriske cifre i strengen : Hej
Vælg Fornavn, Efternavn , Telefon , UDF_NumericOnlyChars (Telefon ), som » NumberOnly ' fra tblPeople
Hvilket vil returnere : Hej < p> Fornavn Efternavn Telefon NumberOnly
-------------------------------------- -----------------------------
John Doe (888) 555-1212 8885 551212