Moin
WIe wär es mit einer Function im
MSSQL-Server?
Hab aus meinen Datenwühl-Verzeichnis mal was rausgekramt, was dir evtl weiterhelfen könnte (ohne Gewähr auf Funktionalität!):
SQL-Code:
CREATE FUNCTION [dbo].[fn_StringListToRecordset](@cList text)
RETURNS @retTable TABLE(Value varchar(50))
AS
BEGIN
DECLARE @aValue varchar(50),
@aStartChar int,
@aEndChar int;
IF DATALENGTH ( @cList ) > 2
BEGIN
SET @aStartChar = 1;
WHILE (CHARINDEX(',', @cList,@aStartChar) <> 0)
BEGIN
SET @aEndChar = CHARINDEX(',', @cList,@aStartChar);
SET @aValue = SUBSTRING(@cList, @aStartChar, @aEndChar - @aStartChar);
SET @aStartChar = @aEndChar + 1;
INSERT INTO @rettable(Value) VALUES(RTRIM(LTRIM(@aValue)));
END
SET @aValue = SUBSTRING(@cList, @aStartChar, DATALENGTH(@cList) - @aStartChar + 1);
INSERT INTO @rettable(Value) VALUES(RTRIM(LTRIM(@aValue)));
END
RETURN
END
Woher ich diesen Beispielcode habe, weiss ich nicht mehr (irgendwo im
WWW...)
Prinzipiell funktioniert das ja so: an die Function eine 'Parameterliste' übergeben
SELECT * FROM fn_StringListToRecordset('"A","B","C"')
; diese wird durch die WHILE-Schleife abgearbeitet und die Ergebnisse in einer Rückgabetabelle eingetragen.
Im Prinzip liefert die Function ja das hier:
SQL-Code:
SELECT Name FROM Tabelle
WHERE Name like '%Meier%' or Name like '%Mueller%'
oder andere Schreibweise:
SQL-Code:
SELECT Name
FROM Tabelle
WHERE Name like '%Meier%'
UNION
SELECT Name FROM Tabelle WHERE Name like '%Mueller%
Also für Deinen Fall: egal, nach welchen Namen du suchen/filtern willst: alle 'Kandidaten' in die Übergabeliste eintragen und die entgsprechenden Datensätze werden dann aufgelistet... Natürlich musst du die Function da oben entsprechend deine Erfordernissen anpassen, aber ich denke der Weg dürfte klar sein!?
Rainer