Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky

Domáce Hardware Siete Programovanie Softvér Otázka Systémy

Ako Take Out Alpha znaky , ale ponechávajú číselné znaky v SQL

Microsoft SQL v Transact - SQL má schopnosť uzavrieť alfa znaky , ale nechať číselné znaky v reťazci , to jednoducho vyžaduje vytvorenie funkcie definované užívateľom . Možno budete chcieť , aby to v prípadoch , kedy je číselné polia v databáze a chcete chrániť integritu INSERT vyčistenie dát pred pokusom vložku . Vo väčšine prípadov , bude celý príkaz INSERT zlyhá v prípade , že je alfa znak v číselnom poli . Návod dovolená 1

Microsoft SQL , vytvoriť používateľom definované funkcie , ako je :

CREATE FUNCTION dbo.UDF_NumericOnlyChars

(

@ reťazec VARCHAR ( 8000 )

)

VRACIA VARCHAR ( 8000 )


BEGIN

DECLARE @ IncorrectCharLoc SMALLINT

SET @ IncorrectCharLoc = PATINDEX ( ' % [ ^ 0-9 ] % ' , @ string )

WHILE @ IncorrectCharLoc > 0

BEGIN

SET @ Numericstring = STUFF ( @ Numericstring , @ IncorrectCharLoc , 1 , '' )

SET @ IncorrectCharLoc = PATINDEX ( ' % [ ^ 0-9 ] % ' , @ Numericstring )

END

Ak ( @ Numericstring = '' )

SET @ Numericstring = '0 ' - To sa uistili , že reťazec čísel sa vrátil

RETURN @ Numericstring

END

GO

To sa vychádza z funkcie definované užívateľom vytvorené Pinal Dave
2

Použite funkciu , ako je táto : .

vyberte [ DBO ] UDF_NumericOnlyChars ( ' sadDs132 # dds @ 19 " )

ktorý vráti : .

13219
3

Použite funkciu na stĺpec tabuľky iba vrátiť numerických znakov v reťazci :

Vyberte meno , priezvisko , telefón , UDF_NumericOnlyChars ( telefón ) ako " NumberOnly " z tblPeople

Ktorý vráti :

Meno Priezvisko Phone NumberOnly

-------------------------------------- -----------------------------

John Doe (888) 555-1212 8885 551212

Najnovšie články

Copyright © počítačové znalosti Všetky práva vyhradené