Sobes.tech
Junior — Middle

Jak można zaimplementować warunkowe filtrowanie danych podczas wykonywania zapytań SQL?

sobes.tech AI

Odpowiedź od AI

Aby zaimplementować warunkowe filtrowanie danych w zapytaniach SQL, można użyć dynamicznego tworzenia zapytań z uwzględnieniem warunków, które mogą być ustawione lub pominięte podczas wykonywania.

W C# często robi się to za pomocą:

  • Konkatenacji łańcuchów z sprawdzaniem warunków (niezalecane ze względu na ryzyko ataku SQL injection).
  • Użycia zapytań parametryzowanych z warunkowymi parametrami.
  • Użycia ORM, np. Entity Framework, gdzie można budować zapytania za pomocą LINQ, dodając warunki w razie potrzeby.

Przykład z 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();

Takie podejście pozwala elastycznie dodawać filtry bez duplikowania kodu i ryzyka popełnienia błędów.