androxin
Goto Top

Reguläre Ausdrücke in MSSQL dynamisch zusammensetzen

Hallo,

ich habe eine Tabelle mit einer Spalte, deren Inhalt ich mit regulären Ausdrücken einschränken möchte.

Momentan geht es ganz rudimentär über

SELECT
   a, b
FROM
  abc
WHERE
   a LIKE '[a-z09][abc]'  
OR a LIKE '[a-z4][def]'  


Nun möchte ich diesen Filter weiter ausbauen, so dass alle zutreffenden regulären Ausdrücke in einer separaten Tabelle gepflegt werden können:

tabelle_filterbedingungen:

ID | FILTER  | AUSDRUCK
----------------------
 1 | TAB_ABC | [a-z09][abc]
 2 | TAB_ABC | [a-z4][def]
 3 | TAB_XY  | [a-z7][ghi]

Wie muss nun das SQL Statement lauten, um alle in der Tabelle "tabelle_filterbedingungen" enthaltenen Ausdrücke mit einem "TAB_ABC" in der "FILTER"-Spalte in dem Select auf "abc" anzuwenden?

Vielen Dank schon einmal für die Anregungen.

Content-Key: 336673

Url: https://administrator.de/contentid/336673

Printed on: April 23, 2024 at 22:04 o'clock

Member: Friemler
Friemler May 02, 2017 at 14:00:35 (UTC)
Goto Top
Hallo Androxin,

teste mal folgendes:
WITH Filters(aFilter) As
(
  SELECT Ausdruck
  FROM   tabelle_filterbedingungen
  WHERE  Filter = 'TAB_ABC'  
)

SELECT DISTINCT
   T.a
  ,T.b

FROM
  abc AS T
  INNER JOIN Filters AS F
    ON T.a LIKE F.aFilter

Grüße
Friemler
Member: ukulele-7
ukulele-7 May 03, 2017 at 05:56:19 (UTC)
Goto Top
Die Idee von Friemler ist gut, das solltest du probieren.

Ansonsten wäre der gänige Weg über dynamisches SQL.