Sobes.tech
Junior — Middle

Kuidas saab SQL-päringute täitmisel rakendada tingimusel põhinevat andmete filtreerimist?

sobes.tech AI

Vastus AI-lt

Datsalīdzinājumu filtrēšanas īstenošanai SQL vaicājumos var izmantot dinamisku vaicājumu veidošanu, ņemot vērā nosacījumus, kas var tikt iestatīti vai izlaisti izpildes laikā.

C# tas bieži tiek darīts šādi:

  • Rindu sasaistīšana ar nosacījumu pārbaudēm (neieteicams SQL injekcijas riska dēļ).
  • Izmantojot parametrizētus vaicājumus ar nosacījuma parametriem.
  • Izmantojot ORM, piemēram, Entity Framework, kur var veidot vaicājumus, izmantojot LINQ, pievienojot nosacījumus pēc nepieciešamības.

Piemērs ar 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();

Šī pieeja ļauj elastīgi pievienot filtrus bez koda dublēšanas un samazina kļūdu risku.