Sobes.tech
Junior — Middle

Wie kann man eine bedingte Datenfilterung bei der Ausführung von SQL-Abfragen implementieren?

sobes.tech KI

Antwort von AI

Um die bedingte Filterung von Daten in SQL-Abfragen zu implementieren, kann man die dynamische Erstellung von Abfragen verwenden, wobei die Bedingungen berücksichtigt werden, die während der Ausführung gesetzt oder weggelassen werden können.

In C# wird dies häufig gemacht durch:

  • Verkettung von Strings mit Bedingungsprüfungen (nicht empfohlen wegen des Risikos von SQL-Injektionen).
  • Verwendung von parametrisierten Abfragen mit bedingten Parametern.
  • Verwendung von ORM, z.B. Entity Framework, bei dem Abfragen mit LINQ gebaut werden können, indem Bedingungen bei Bedarf hinzugefügt werden.

Beispiel mit LINQ:

var query = context.Users.AsQueryable();

if (!string.IsNullOrEmpty(nameFilter)) {
    query = query.Where(u => u.Name.Contains(nameFilter));
}

if (ageFilter.HasValue) {
    query = query.Where(u => u.Age == ageFilter.Value);
}

var result = query.ToList();

Dieser Ansatz ermöglicht es, Filter flexibel hinzuzufügen, ohne Code zu duplizieren oder Fehler zu riskieren.