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.