Berikut adalah contoh membuat tabel dengan aturan khusus untuk email dengan alamat (regexp). Kemudian contoh dengan pola query sql (Regexp). Dengan ini Anda harus dapat melakukan apa yang Anda inginkan
Buat tabel dengan regexp
create table Contacts (
FirstName nvarchar(30),
LastName nvarchar(30),
EmailAddress nvarchar(30) CHECK (dbo.RegExMatch('[a-zA-Z0-9_\-]example@sqldat.com([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'
,'example@sqldat.com’
,'0129-2090-1092')
,( 'encoremoi'
,'nimportequoi'
,'example@sqldat.com'
,'(122) 190-9090')
GO
Jalankan permintaan sql dengan regexp
SELECT [FirstName]
,[LastName]
,[EmailAddress]
,[USPhoneNo]
FROM [talend].[dbo].[Contacts]
where [talend].[dbo].RegExMatch([EmailAddress],'[a-zA-Z0-9_\-]example@sqldat.com([a-zA-Z0-9_\-]+\.)+(com|org|edu|nz|au)') = 1
Kode Fungsi
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 ;
}
}
};
Untuk penjelasan lebih lanjut, tunjukkan di sini tutorialnya ->