Einzelnen Beitrag anzeigen

raiguen
(Gast)

n/a Beiträge
 
#16

Re: [SQL] Select mit dynamischer Parameteranzahl

  Alt 3. Mär 2009, 11:40
Zitat von Reinhardtinho:
Ich hab es erstmal mit einer Abfrage gemacht, bei der sich in der WHERE-Klausel nur ein Suchbegriff befindet.
Das Resultat fülle ich in ein C#-DataSet. Nun führe ich die Abfrage für jedes Suchwort aus und erstelle ein neues DataSet.
Am Ende werden die über die Merge-Methode zusammengeführt.

Im Test ging das sogar sehr flott, ich werde es aber auch noch mal über die SP testen.
...
Naja, bei kleinerne Datenmengen mag das ja hinreichend flott sein - obwohl ich das schon recht 'overheaded' finde mit den DataSets. Aber immerhin erstmal eine 'brauchbare' Lösung.

Wenn du es mit der SP nicht hinbekommen solltest, dann könntest Du es ja C#-technisch auch ungefähr so lösen:

Code:

string s = "SELECT Name FROM tabelle WHERE Name LIKE '%{0}%' ";

//--anhand der übergeben Parameterliste

string selcmd = String.Format( s, paramListe[0].ToString() );

//--wenn mehr einträge in paramListe
if (paramListe.Count > 1)
  { for (int i=1; i < paramListe.Count; i++ )
    { selcmd += selcmd + "UNION " + String.Format(s, paramListe[i].ToString() );
    }
  }
getippt und nicht getestet!

Für die SP aus meinem Posting #12 müsstest du das INSERT-Statement ungefähr wie folgt anpassen:
INSERT INTO @rettable(Value) (SELECT Name FROM tabelle WHERE Name LIKE '%'+(RTRIM(LTRIM(@aValue)))+'%'); Rainer
  Mit Zitat antworten Zitat