Microsoft SQL 's Transact - SQL heeft de mogelijkheid tot het afsluiten van alpha karakters maar laat numerieke tekens in een string , het vereist alleen de oprichting van een door de gebruiker gedefinieerde functie . Misschien wilt u dit doen in gevallen waar sprake is van een numeriek veld in de database en u wilt de integriteit van uw insert statement te beschermen door het opruimen van de gegevens voordat u de insert . In de meeste gevallen zal het gehele insert statement mislukken als er een alfabetisch teken in een numeriek veld . Instructies 1 In Microsoft SQL , een door de gebruiker gedefinieerde functie zoals : CREATE FUNCTIE dbo.UDF_NumericOnlyChars ( @ snaar VARCHAR ( 8000 ) op ) op Twitter KEERT VARCHAR ( 8000 ) op AS BEGIN DECLARE @ IncorrectCharLoc SMALLINT SET @ IncorrectCharLoc = patindex ( ' % [ ^ 0-9 ] % ' , @ touwtje ) op TERWIJL @ IncorrectCharLoc > 0 BEGIN SET @ Numericstring = STUFF ( @ Numericstring , @ IncorrectCharLoc , 1 , '' ) SET @ IncorrectCharLoc = patindex ( ' % [ ^ 0-9 ] % ' , @ Numericstring ) END Als ( @ Numericstring = '' ) SET @ Numericstring = '0 ' - Dit zal ervoor zorgen dat een reeks getallen wordt teruggegeven RETURN @ Numericstring END GO dit is gebaseerd off van de gebruiker gedefinieerde functie gecreëerd door Pinal Dave kopen van 2 Gebruik de functie als volgt : . Selecteer [ dbo ] UDF_NumericOnlyChars ( ' sadDs132 # dds @ 19 ' ) op Welke zal terugkeren : 13.219 3 Gebruik de functie op een kolom tabel om alleen terug te keren van de numerieke tekens in de string : Selecteer Voornaam, Achternaam , Telefoon , UDF_NumericOnlyChars ( Phone ) als ' NumberOnly ' van tblPeople Welke zal terugkeren : Voornaam Achternaam Telefoon NumberOnly -------------------------------------- ----------------------------- John Doe (888) 555-1212 8885 551212
|