SqlExpression プロパティ
目次を折りたたむ
目次を展開する
この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

SqlFilter.SqlExpression プロパティ

 

SQL 式を取得します。

名前空間:   Microsoft.ServiceBus.Messaging
アセンブリ:  Microsoft.ServiceBus (Microsoft.ServiceBus.dll 内)

[DataMemberAttribute(Name = "SqlExpression", Order = 65537, EmitDefaultValue = false, 
	IsRequired = false)]
public string SqlExpression { get; private set; }

プロパティ値

Type: System.String

SQL 式です。

次のとおりに、可能な値、 SqlExpression プロパティです。 有効な述語の定義は、次のとおりです。 これらの値は、SQL92 標準 T-SQL と対応します。

<predicate ::=
{ NOT <predicate> }
| <predicate> AND <predicate>
| <predicate> OR <predicate>
| <expression> { = | <> | != | > | >= | < | <= } <expression>
| <property> IS [NOT] NULL
| <expression> [NOT] IN ( <expression> [, ...n] )
| <expression> [NOT] LIKE <pattern> [ESCAPE <escape_char>]
| EXISTS ( <property> )
| ( <predicate> )

<expression> ::=
<constant> 
| <property>
| <expression> { + | - | * | / } <expression>
| { + | - } <expression>
| ( <expression> )


構文

<property> := 
 [<scope> .] <property_name>

引数

<scope>

スコープを示す省略可能な文字列 <property_name>します。 有効な値は sys または userです。 sys システム スコープを示す <property_name> のパブリック プロパティの名前、 BrokeredMessage クラスです。 user ユーザー スコープを示す、 <property_name> のキー、 Properties ディクショナリ。 user スコープには、既定のスコープがある場合 <scope> が指定されていません。

「解説」

  • 存在しないシステムのプロパティへのアクセスには、エラーです。 存在しないユーザーのプロパティへのアクセスには、エラーではありません。 代わりに、ユーザーの存在しないプロパティは、不明な値として評価されます。 不明な値は、演算子の評価時に特別に扱われます。

構文

<property_name> ::=
<property_name_part>

<scope> ::=
<property_name_part>

<property_name_part> ::=
<identifier>
| <delimited_identifier>

<identifier> ::=
<regular_identifier> | <quoted_identifier> | <delimited_identifier>

引数

<regular_identifier>

次の正規表現で表される文字列: [[:IsLetter:]][_[:IsLetter:][:IsDigit:]]*です。 これには、任意の文字列の文字で始まる、アンダー スコア、文字または数字の 1 つ以上続くことを意味します。 [:IsLetter:] Unicode 文字として分類される任意の Unicode 文字です。 System.Char.IsLetter(c) 返します true 場合 c Unicode 文字します。 [:IsDigit:] 10 進数字として分類される任意の Unicode 文字です。 System.Char.IsDigit(c) 返します true 場合 c Unicode の数字です。 A <regular_identifier> 予約済みキーワードにすることはできません。

<delimited_identifier>

左と右の角かっこ () で囲まれた文字列です。 右側の角かっこは、2 つの右角かっこで表されます。

例を次に <delimited_identifier>:

[Property With Space]
[HR-EmployeeID]
<quoted_identifier>

二重引用符で囲まれた文字列。 識別子に二重引用符は、2 つの二重引用符として表されます。 これは使用しないで引用符で囲まれた識別子を使用する文字列定数と混同しては簡単にできるためです。 可能であれば、区切られた識別子を使用します。

例を次に <quoted_identifier>:

"Contoso & Northwind"

構文

<pattern> ::=
<expression>

「解説」

  • <pattern> 文字列として評価される式である必要があります。 LIKE 演算子をパターンとして使用し、次のワイルドカード文字を含めることができます。

    • %:0 個以上の文字の任意の文字列。

    • _:任意の 1 文字です。

構文

<escape_char> ::=
<expression>

「解説」

  • <escape_char> 長さ 1 の文字列として評価される式である必要があります。 LIKE 演算子のエスケープ文字として使用されます。 たとえば、 property LIKE 'ABC\%' ESCAPE '\' と一致する ABC% "ABC"で始まる文字列ではなく。

構文

<constant> ::=
<integer_constant> | <decimal_constant> | <approximate_number_constant> | <boolean_constant> | NULL

引数

<integer_constant>

引用符で囲まれていないと、小数点以下が含まれていない数値文字列です。 値として保存されます System.Int64 同じ範囲に従います。

長い定数の例を次に示します。

1894
2
<decimal_constant>

小数点が含まれていますが、引用符で囲まれていない数値の文字列です。 値として保存されます System.Double 同じ範囲/有効桁数に従います。

System_CAPS_noteメモ

将来のバージョンでは、数は正確な数のセマンティクスをサポートする他のデータ型で格納できるために依存しない基のデータ型は、ファクト System.Double<decimal_constant>です。

10 進定数の例を次に示します。

1894.1204
2.0
<approximate_number_constant>

科学的表記法で書き込まれた数。 値として保存されます System.Double 同じ範囲/有効桁数に従います。

おおよその数値定数の例を次に示します。

101.5E5
0.5E-2

構文

<boolean_constant> :=
TRUE | FALSE

「解説」

  • ブール型の定数がキーワードで表される TRUE または FALSEです。 値として保存されます System.Booleanします。

構文

<string_constant>

「解説」

  • 文字列定数は、単一引用符で囲むし、有効な Unicode 文字を含めます。 文字列定数に埋め込まれている単一引用符は、2 つの単一引用符で表されます。

セマンティクスは次に注意してください SqlFilter:

  • プロパティの名前が区別されます。

  • プロパティが存在しない場合、またはプロパティの値が null の場合、"IS NULL"値は true です。 プロパティがないかを確認するには、使用、 EXISTS キーワードです。 たとえば、次は true を返す場合 aProperty が存在します。

    EXISTS(aProperty)
    
  • 任意の式の一部としてプロパティ名を使用すると、プロパティが存在しない場合、その値になります「不明」とします。 算術演算子 (たとえば、+) 任意のオペランドがわからない場合は、「不明」の値を返します。 たとえば、次が「不明」aMissingProperty が見つからない場合は。

    aMissingProperty + “abc”
    
  • オペランドの値が「不明」に評価された場合、比較演算子が「不明」戻る 例を示します。

    aMissingProperty > anExistingProperty
    

    場合に、上記の式は常に返します「不明」 aMissingProperty 存在しません。

  • すべての論理演算子が 3 つの内部値として有効な条件を検討してください:"true"、"false"および「不明」とします。 次の表では、これらの演算子の真の値 (T、F、U 各を表し、"true"、"false"が「不明」) について説明します。

    AND

    T

    F

    U

    T

    T

    F

    U

    F

    F

    F

    F

    U

    U

    F

    U

    or

    T

    F

    U

    T

    T

    T

    T

    F

    T

    F

    U

    U

    T

    U

    U

    NOT

    -

    T

    F

    F

    T

    U

    U

    EXISTS LIKE any 演算子が「不明」の場合に「不明」に戻る IN 左のオペランドが「正常」でない場合は、「不明」を返します

  • GUID を指定すると、無効なリテラルとしてできなくします。 ただし、文字列リテラルで作成することも、GUID 型プロパティ値を代入するときに、暗黙的な変換を期待できます。

  • 非論理演算子 (など +、-、*、/) バインド、c# 演算子と同様に動作します。 正確に、上記で説明した「不明」の値の処理を除くの C# の場合と同じ動作を予測する必要があります。

  • フィルター アクションの代入演算子は、暗黙的な変換が存在する場合、プロパティの左側にあるが存在し、その値が null でない場合は、暗黙的な変換を実行しようとします。 実際の動作に依存してどのような System.Convert.ChangeType() 関数では、CLR でさらにいくつか暗黙の型への変換を DateTimeOffset, 、TimeSpan, 、Guid, 、および Uri 文字列間でします。

次の例では、日付でメッセージをフィルタします。

var filter = new SqlFilter(" datetime >= @datetime"); 
filter.Parameters.Add("@datetime", DateTime.Parse("2016-06-06")); 
トップに戻る
表示:
© 2016 Microsoft