Sobes.tech
Back to questions
Junior — Middle
67

Каким образом можно реализовать условную фильтрацию данных при выполнении SQL-запросов?

Answer from AI

sobes.tech AI

Для реализации условной фильтрации данных в SQL-запросах можно использовать динамическое формирование запроса с учетом условий, которые могут быть заданы или опущены во время выполнения.

В C# это часто делается с помощью:

  • Конкатенации строк с проверкой условий (не рекомендуется из-за риска SQL-инъекций).
  • Использования параметризованных запросов с условными параметрами.
  • Использования ORM, например, Entity Framework, где можно строить запросы с помощью LINQ, добавляя условия по необходимости.

Пример с 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();

Такой подход позволяет гибко добавлять фильтры без дублирования кода и риска ошибок.