Niestety regex wsparcie w MSSQL jest straszne, najbliższy operator jest „jak”, który zdobywa się na funkcjonalność regex poprzez mili. Będziesz musiał popatrzeć na podzielenie wyrażeń regularnych na wiele podobnych instrukcji i prawdopodobnie wykonanie brudnej manipulacji łańcuchami, aby emulować to, co próbujesz osiągnąć.
Na przykład, gdy możemy powielić [[: puste:]] za pomocą [] (przeczytaj [Zakładka miejsca]), nie możemy wymusić dopasowania zero lub więcej z nich, więc zamiast tego musimy usunąć je z wyrażenia, ale to pasuje do "ASD", więc musimy przetestować obecność ASD w niezmodyfikowanym łańcuchu.
Myślę, że następujące zastąpiłoby twoje wyrażenie regularne, ale zostało szybko zrzucone razem, przetestuj je dokładnie.
replace(replace(somefield,' ',''),' ','') in ('ASD','|ASD','|ASD|','ASD|')
and
somefield like '%ASD%'
Znowu w instrukcjach zastępowania jeden jest spacją, a drugi tabulatorem.
możliwy duplikat [Wyrażeń regularnych na serwerach SQL Server?] (Http://stackoverflow.com/questions/267921/regular-expressions-in-sql-server-servers) –
Nie szukam wyrażeń regularnych w MSSQL, chcę tylko dowolnego równoważnego wyrażenia. – akosch
Sprawdź ten wpis: http://stackoverflow.com/questions/267921/regular-expressions-in-sql-server-servers Mam nadzieję, że to pomoże. – Hal