In Microsoft SQL , creare una funzione definita dall'utente come :
CREATE dbo.UDF_NumericOnlyChars FUNZIONE
(
@ stringa VARCHAR ( 8000 ) per
) per
RETURNS VARCHAR ( 8000 ) per
AS
BEGIN
DECLARE @ IncorrectCharLoc SMALLINT
SET @ IncorrectCharLoc = PATINDEX ( '% [ ^ 0-9 ] % ' , @ stringa ) per
MENTRE @ IncorrectCharLoc > 0
BEGIN
SET @ Numericstring = STUFF ( @ Numericstring , @ IncorrectCharLoc , 1 , '' ) per
SET @ IncorrectCharLoc = PATINDEX ( '% [ ^ 0-9 ] % ' , @ Numericstring ) per
END
Se ( @ Numericstring = '' ) per
SET @ Numericstring = '0 ' - Ciò contribuirà a garantire che una stringa di numeri viene restituito
RETURN @ Numericstring
FINE
GO
questo si basa off della funzione definita dall'utente creato da Pinal Dave
2
Utilizzare la funzione in questo modo: .
Selezionare [ dbo ] UDF_NumericOnlyChars ( ' sadDs132 dds # @ 19' ) per
che restituirà :
13219
3
Utilizzare la funzione di una colonna della tabella di restituire solo le cifre numeriche nella stringa :
Selezionare Nome, Cognome, Telefono , UDF_NumericOnlyChars ( Phone) come ' NumberOnly ' da tblPeople
che restituirà :
Nome Cognome Telefono NumberOnly
-------------------------------------- -----------------------------
John Doe (888) 555-1212 8885 551212
Programmazione © www.354353.com