Daca am inteles bine tu vrei sa afisezi toate numele care incep cu n si nu contin caractere numerice .In acest caz patternul asta de regexp e ce -ti trebuie
"^n([a-z]|[A-Z])+"
Din ceaa ce stiu eu sql2005 nu permite sa specifici regexpuri in interogari.
O solutie mai complicata ar fi sa-ti scrii un functie clr in care sa folosesti regexp iar apoi sa faci deploymentul acestei unctii pe sql server.
Uite aici o clasa dot net care contine o asemenea functie
using
System;
using
System.Collections.Generic;
using
System.Text.RegularExpressions;
using
System.Data;
using
System.Data.Sql ;
using
Microsoft.SqlServer.Server ;
using
System.Data.SqlTypes ;
public class regexpuri
{
[Microsoft.SqlServer.Server.
SqlFunction]
public static bool potrivire(string text)
{
return Regex.IsMatch(text, "^n([a-z]|[A-Z])+");
}
}
Compilezi dll -ul asta apoi faci pasii:
1 enable clr execution
sp_configure
'clr enabled', 1
go
reconfigure
go
2
CREATE
ASSEMBLY regexpuri from 'calea catre dll\regexpuri.dll' WITH PERMISSION_SET = SAFE
3
create
function match (@text as nvarchar(MAX) )returns bit
as
external name regexpuri.regexpuri.potrivire
4 testezi functia
SELECT
[numele bazei de date in care ai creat functia assmbly].[dbo].[match] (
'naaaa')
Secolul XXI ori va fi religios ori nu va fi deloc