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.