Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Filtreleme, büyük veri kümelerini yalnızca ihtiyacınız olan kayıtlarla daraltıyor. REST'te Veri API'si oluşturucusu (DAB), OData'dan esinlenen $filter bir sorgu parametresini destekler. Her filtre, güvenlik ve tutarlılık için parametreli SQL'e derler.
Hızlı bakış
| Operator | Meaning |
|---|---|
eq |
eşit |
ne |
eşit değil |
gt |
büyüktür |
ge |
büyüktür veya eşittir |
lt |
daha az |
le |
küçüktür veya eşittir |
and |
mantıksal AND |
or |
mantıksal OR |
not |
mantıksal DEĞİl |
( ) |
Grup -landırma |
eq
Eşittir. Bir alanın değerinin sağlanan değişmez değer veya nullile tam olarak eşleştiği kayıtları döndürür.
Bu örnekte, başlığın eşit 'Dune'olduğu, kullanılabilir bayrağın true olduğu, fiyatın 20, yayımlanma tarihinin 1 Ocak 2024 olduğu ve derecelendirmenin null olduğu kitaplar alıyoruz.
GET /api/books?$filter=
title eq 'Dune' and
available eq true and
price eq 20 and
published_on eq 2024-01-01T00:00:00Z and
rating eq null
Uyarı
$filter
ne null, null karşılaştırmalar için ve'i doğrudan desteklereq null.
Kavramsal SQL
SELECT * FROM Books
WHERE title = 'Dune'
AND available = 1
AND price = 20
AND published_on = '2024-01-01T00:00:00Z'
AND rating IS NULL;
ne
Eşit değil. Alanın değerinin verilen değişmez değerle eşleşmediği veya null olmadığı kayıtları döndürür.
Bu örnekte, başlığın olmadığı 'Foundation', kullanılabilir bayrağın yanlış olmadığı, fiyatın sıfır olmadığı, yayımlanma tarihinin 31 Aralık 2023 olmadığı ve derecelendirmenin null olmadığı kitaplar alıyoruz.
GET /api/books?$filter=
title ne 'Foundation' and
available ne false and
price ne 0 and
published_on ne 2023-12-31T00:00:00Z and
rating ne null
Uyarı
Tarih veya tarih saat alanlarını filtrelerken, alıntılanmamış ISO 8601 UTC biçimini (yyyy-MM-ddTHH:mm:ssZ) kullanın.
Alıntılanan veya OData stili biçimler geçersiz.
- Yanlış:
$filter=Date ge '2025-01-01' - Yanlış:
$filter=Date ge datetime'2025-01-01' - Doğru:
$filter=Date ge 2025-01-01T00:00:00Z
Kavramsal SQL
SELECT * FROM Books
WHERE title <> 'Foundation'
AND available <> 0
AND price <> 0
AND published_on <> '2023-12-31T00:00:00Z'
AND rating IS NOT NULL;
gt
Büyüktür. Bir alanın değerinin verilen değişmez değerden kesinlikle yüksek olduğu kayıtları döndürür.
Bu örnekte, başlığı 'den sonra 'A'alfabetik olarak sıralanan, kullanılabilir bayrağı true, fiyatı 10'dan büyük ve yayımlanma tarihi 1 Ocak 2020'den sonra olan kitapları alıyoruz.
GET /api/books?$filter=
title gt 'A' and
available gt false and
price gt 10 and
published_on gt 2020-01-01T00:00:00Z
Kavramsal SQL
SELECT * FROM Books
WHERE title > 'A'
AND available > 0
AND price > 10
AND published_on > '2020-01-01T00:00:00Z';
ge
Büyüktür veya eşittir. Bir alanın değerinin verilen değişmez değerden yüksek veya buna eşit olduğu kayıtları döndürür.
Bu örnekte, başlığı 'A' veya üzeri olan, kullanılabilir bayrağı doğru, fiyatı en az 10 olan ve yayımlanma tarihi 1 Ocak 2020 veya sonrasında olan kitaplar alacağız.
GET /api/books?$filter=
title ge 'A' and
available ge false and
price ge 10 and
published_on ge 2020-01-01T00:00:00Z
Kavramsal SQL
SELECT * FROM Books
WHERE title >= 'A'
AND available >= 0
AND price >= 10
AND published_on >= '2020-01-01T00:00:00Z';
lt
Küçüktür. Bir alanın değerinin verilen değişmez değerden kesinlikle daha düşük olduğu kayıtları döndürür.
Bu örnekte, başlığı 'den önce 'Z'sıralanan, kullanılabilir bayrağı false, fiyatı 50'den küçük ve yayımlanma tarihi 1 Ocak 2030'dan önce olan kitapları alıyoruz.
GET /api/books?$filter=
title lt 'Z' and
available lt true and
price lt 50 and
published_on lt 2030-01-01T00:00:00Z
Kavramsal SQL
SELECT * FROM Books
WHERE title < 'Z'
AND available < 1
AND price < 50
AND published_on < '2030-01-01T00:00:00Z';
le
Küçük veya eşit. Bir alanın değerinin verilen değişmez değerden düşük veya buna eşit olduğu kayıtları döndürür.
Bu örnekte, başlığı değerinden önce veya değerine eşit 'Z'olarak sıralanan, kullanılabilir bayrağı true, fiyatı 100 veya daha düşük olan ve yayımlanma tarihi 1 Ocak 2030 veya öncesinde olan kitapları alıyoruz.
GET /api/books?$filter=
title le 'Z' and
available le true and
price le 100 and
published_on le 2030-01-01T00:00:00Z
Kavramsal SQL
SELECT * FROM Books
WHERE title <= 'Z'
AND available <= 1
AND price <= 100
AND published_on <= '2030-01-01T00:00:00Z';
and
Mantıksal VE. Kaydın eşleşmesi için tümü doğru olması gereken birden çok koşulu birleştirir.
Bu örnekte, başlığın 'Dune'olduğu, kullanılabilir bayrağın true olduğu, fiyatın 50'den küçük olduğu, yayımlanma tarihinin 1 Ocak 2020'den sonra olduğu ve derecelendirmenin null olduğu kitaplar alıyoruz.
GET /api/books?$filter=
title eq 'Dune' and
available eq true and
price lt 50 and
published_on ge 2020-01-01T00:00:00Z and
rating eq null
Kavramsal SQL
SELECT * FROM Books
WHERE title = 'Dune'
AND available = 1
AND price < 50
AND published_on >= '2020-01-01T00:00:00Z'
AND rating IS NULL;
or
Mantıksal VEYA. Kaydın eşleşmesi için en az birinin doğru olması gereken koşulları birleştirir.
Bu örnekte, başlığın 'Dune'olduğu veya kullanılabilir bayrağın doğru olduğu ya da fiyatın 20'den büyük olduğu veya yayımlanma tarihinin 1 Ocak 2025'ten önce olduğu veya derecelendirmenin null olduğu kitapları alıyoruz.
GET /api/books?$filter=
title eq 'Dune' or
available eq true or
price gt 20 or
published_on lt 2025-01-01T00:00:00Z or
rating eq null
Kavramsal SQL
SELECT * FROM Books
WHERE title = 'Dune'
OR available = 1
OR price > 20
OR published_on < '2025-01-01T00:00:00Z'
OR rating IS NULL;
not
Mantıksal DEĞİl. Yalnızca koşul yanlış olduğunda kayıtların döndürülmesi için bir koşulu geçersiz bırakır.
Bu örnekte başlığı 'Romance'olmayan, kullanılamayan, maliyeti 10 TL'den düşük olmayan, 1 Ocak 2020'den önce yayımlanmamış ve null derecelendirmesi olmayan tüm kitapları alıyoruz.
GET /api/books?$filter=
not (
title eq 'Romance' and
available eq false and
price lt 10 and
published_on lt 2020-01-01T00:00:00Z and
rating eq null
)
Kavramsal SQL
SELECT * FROM Books
WHERE NOT (
title = 'Romance'
AND available = 0
AND price < 10
AND published_on < '2020-01-01T00:00:00Z'
AND rating IS NULL
);
( ) Grup -landırma
Alt ifadeleri gruplandırarak karmaşık filtrelerde değerlendirme sırasını denetleyebilirsiniz.
Bu örnekte, başlığın 'Fiction' veya 'SciFi'olduğu ve kitabın kullanılabilir olduğu veya 25 TL'nin altında fiyatlandığı ve yayımlanma tarihinin 1 Ocak 2020'den sonra olduğu ve derecelendirmenin null olduğu kitapları alıyoruz.
GET /api/books?$filter=
(title eq 'Fiction' or title eq 'SciFi') and
(available eq true or price lt 25) and
published_on ge 2020-01-01T00:00:00Z and
rating eq null
Kavramsal SQL
SELECT * FROM Books
WHERE (title = 'Fiction' OR title = 'SciFi')
AND (available = 1 OR price < 25)
AND published_on >= '2020-01-01T00:00:00Z'
AND rating IS NULL;
Örnek yapılandırma
{
"runtime": {
"pagination": {
"default-page-size": 100,
"max-page-size": 100000
}
},
"entities": {
"Book": {
"source": {
"type": "table",
"object": "dbo.books"
},
"mappings": {
"sku_title": "title",
"sku_price": "price"
},
"relationships": {
"book_category": {
"cardinality": "one",
"target.entity": "Category",
"source.fields": [ "category_id" ],
"target.fields": [ "id" ]
}
}
},
"Category": {
"source": {
"type": "table",
"object": "dbo.categories"
},
"relationships": {
"category_books": {
"cardinality": "many",
"target.entity": "Book",
"source.fields": [ "id" ],
"target.fields": [ "category_id" ]
}
}
}
}
}
Ayrıca bakınız
| Konsept | REST | GraphQL | Amaç |
|---|---|---|---|
| Projection | $select | items | Döndürülecek alanları seçme |
| Filtering | $filter | filtre | Satırları koşula göre kısıtlama |
| Sıralama | $orderby | orderBy | Sıralama düzenini tanımlama |
| Sayfa Boyutu | $first | first | Sayfa başına öğe sayısını sınırlama |
| Devam | $after | sonra | İmleç kullanarak son sayfadan devam et |
Uyarı
REST anahtar sözcükleri, OData kurallarını izleyerek ile $başlar.