sql >> データベース >  >> RDS >> Sqlserver

SQL Server 2008 での電子メール検証?

    以下は、アドレス付きメール (正規表現) の特定のルールを含むテーブルを作成する例です。次に、SQL クエリ パターン (正規表現) の例を示します。これで、やりたいことができるはずです

    正規表現でテーブルを作成

    create table Contacts (FirstName nvarchar(30),LastName nvarchar(30),EmailAddress nvarchar(30) CHECK (dbo.RegExMatch('[a-zA-Z0-9_\-][email protected]
     ([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz)', EmailAddress)=1),USPhoneNo nvarchar(30) CHECK (dbo.RegExMatch('\([1 -9][0-9][0-9]\)[0-9][0-9][0-9]\-[0-9][0-9][0-9][0- 9]', UsPhoneNo)=1))INSERT INTO [talend].[dbo].[Contacts]([FirstName],[LastName],[EmailAddress],[USPhoneNo])VALUES('Hallam','Amine', '[email protected]
     ','0129-2090-1092'),( 'encoremoi','nimportequoi',' [email protected]
     ','(122) 190-9090')GO  

    正規表現でリクエスト SQL を実行

    SELECT [FirstName],[LastName],[EmailAddress],[USPhoneNo]FROM [talend].[dbo].[Contacts]where [talend].[dbo].RegExMatch([EmailAddress],' [a-zA-Z0-9_\-][email protected]
     ([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz|au)') =1  

    機能コード

    using System;using Microsoft.SqlServer.Server;using System.Text.RegularExpressions;public partial class RegExBase{[SqlFunction(IsDeterministic =true, IsPrecise =true)]public static int RegExMatch( string matchString , string pattern ){Regex r1 =new Regex(pattern.TrimEnd(null));if (r1.Match(matchString.TrimEnd(null)).Success ==true){return 1;}else{return 0;}}};  

    詳細については、チュートリアルをご覧ください ->

    1. 文字列データを行の異なる列データとしてテーブルに挿入する方法

    2. 科学的記数法なしでSQLServerでfloatをvarcharに変換する

    3. jdbctemplateを介してテーブルにレコードを挿入するときに、自動インクリメントされたIDを取得するにはどうすればよいですか。

    4. 異なるサーバー上の2つのデータベース内の2つのテーブルを結合してデータを照会する