27

ODataは、文字列フィールドのフィルター条件を大文字と小文字を区別して評価するか、大文字と小文字を区別せずに評価するかを指定しますか?

例:(ドキュメントから)

/Suppliers?$filter=Address/City eq 'Redmond' 

これは大文字と小文字を区別することが期待されますか?

両方のオプションを提供したい場合、これをどのように表現できますか?次のように使用できるtolower()関数があります。

/Suppliers?$filter=tolower(Address/City) eq 'redmond'

また

/Suppliers?$filter=tolower(Address/City) eq tolower('Redmond')

大文字と小文字を区別しないマッチングを表現するためのより簡潔な方法はありませんか?

4

3 に答える 3

26

「eq」演算子では大文字と小文字が区別されます。tolower(またはtoupper)の使用は、これを行うための現在推奨されている方法です。

于 2012-11-21T18:26:07.770 に答える
1

odataサービスはクエリを実行しているだけなので、これはデータベースの照合設定に依存すると思います。Vitekの答えが正しければ、odataは結果セットに対してクエリ後のフィルタリングを実行していますが、それは奇妙なことですよね?

于 2013-09-24T08:05:50.190 に答える
0

データベースに依存しません。大文字と小文字を区別しない方法でデータベースに対してクエリを実行した場合でも、ODataは独自の追加のフィルタリングを実行し、データを除外します。

于 2015-01-13T10:48:14.933 に答える