演算子
OutSystemsでは以下の演算子を使用できます。
数値
+, -, *, /
単項マイナス
数値オペランドの否定を一時停止します。
以下は単項マイナス(-)演算子で許可されているデータ型です。
-(単項マイナス) | Text | Long Integer | Integer | Decimal | Boolean | Date Time | Date | Time |
---|---|---|---|---|---|---|---|---|
No | Yes | Yes | Yes | No | No | No | No |
算術演算子 /, -, *
共通演算操作を実行します。
以下は算術演算子/、-、*で許可されているデータ型です。
/, *, - | Text | Long Integer | Integer | Decimal | Boolean | Date Time | Date | Time |
---|---|---|---|---|---|---|---|---|
Text | No | No | No | No | No | No | No | No |
Long Integer | No | Yes(a) | Yes(a) | Yes(a) | No | No | No | No |
Integer | No | Yes(a) | Yes(a) | Yes(a) | No | No | No | No |
Decimal | No | Yes(a) | Yes(a) | Yes | No | No | No | No |
Boolean | No | No | No | No | No | No | No | No |
DateTime | No | No | No | No | No | No | No | No |
Date | No | No | No | No | No | No | No | No |
Time | No | No | No | No | No | No | No | No |
(a) 除算演算の結果は常にDecimal
型として型変換されます。
算術演算子+
和演算の実行。オペランドの1つがText
型の場合、他のオペランドはText
型に変換され連結操作を実行します。
以下は算術演算子+
で許可されているデータ型です。
+ | Text | Long Integer | Integer | Decimal | Boolean | DateTime | Date | Time |
---|---|---|---|---|---|---|---|---|
Text | Yes | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) |
Long Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No |
Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No |
Decimal | Yes(a) | Yes | Yes | Yes | No | No | No | No |
Boolean | Yes(a) | No | No | No | No | No | No | No |
DateTime | Yes(a) | No | No | No | No | No | No | No |
Date | Yes(a) | No | No | No | No | No | No | No |
Time | Yes(a) | No | No | No | No | No | No | No |
(a) テキスト以外の部分はText
型に変換され、連結されます。
論理とBoolean型
and、or、not、=、<、>、<>、<=、>=
AND
論理AND操作を実行します。Boolean
型オペランドのみを許可します。
OR
論理OR操作を実行します。Boolean
型オペランドのみを許可します。
単項NOT
論理NOT操作を実行します。Boolean
型オペランドのみを許可します。
比較演算子 <、>、<=、>=
共通比較操作。オペランドの1つがText型の場合、他のオペランドはText型に変換され文字列比較操作を実行します。
以下は比較演算子で許可されているデータ型です。
<, >, <=, >= | Text | Integer | Long Integer | Decimal | Boolean | Date Time | Date | Time | Phone Number | Currency | Binary Data | |
---|---|---|---|---|---|---|---|---|---|---|---|---|
Text | Yes | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | No | No |
Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No | No | No | Yes(c) | No |
Long Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No | No | No | Yes(c) | No |
Decimal | Yes(a) | Yes | Yes | Yes | No | No | No | No | No | No | Yes(c) | No |
Boolean | Yes(a) | No | No | No | No | No | No | No | No | No | No | No |
Date Time | Yes(a) | No | No | No | No | Yes | No | No | No | No | No | No |
Date | Yes(a) | No | No | No | No | No | Yes | No | No | No | No | No |
Time | Yes(a) | No | No | No | No | No | No | Yes | No | No | No | No |
Yes(a) | No | No | No | No | No | No | No | Yes | Yes(b) | No | No | |
Phone Number | Yes(a) | No | No | No | No | No | No | No | Yes(b) | Yes | No | No |
Currency | No | Yes | Yes | Yes | No | No | No | No | No | No | Yes | No |
Binary Data | No | No | No | No | No | No | No | No | No | No | No | No |
(a) テキスト以外の部分はText
型に変換され、両方のテキストの長さが比較されます。
(b) 両方の変数はText
型に変換され、長さが比較されます。
(c) Currency
型オペランドはInteger
データ型に変換され、比較されます。
比較されます。
等値演算子 =、<>
等値演算子を実行します。オペランドの1つがText
型の場合、他のオペランドはText
型に変換され文字列比較操作を実行します。
以下は等値演算子で許可されているデータ型です。
=, <> | Text | Integer | Long Integer | Decimal | Boolean | Date Time | Date | Time | Phone Number | Currency | Binary Data | Entity / Structure / Record | Integer Identifier | Text Identifier | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Text | Yes | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | Yes(a) | No | No | No | No |
Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No | Yes* | Yes* | Yes* | No | No | No | No |
Long Integer | Yes(a) | Yes | Yes | Yes | No | No | No | No | Yes* | Yes* | Yes* | No | No | No | No |
Decimal | Yes(a) | Yes | Yes | Yes | No | No | No | No | Yes* | Yes* | Yes* | No | No | No | No |
Boolean | Yes(a) | No | No | No | Yes | No | No | No | No | No | No | No | No | No | No |
Date Time | Yes(a) | No | No | No | No | Yes | Yes* | Yes* | Yes* | Yes* | No | No | No | No | No |
Date | Yes(a) | No | No | No | No | Yes* | Yes | No | Yes* | Yes* | No | No | No | No | No |
Time | Yes(a) | No | No | No | No | Yes* | No | Yes | Yes* | Yes* | No | No | No | No | No |
Yes(a) | Yes* | Yes* | Yes* | No | Yes* | Yes* | Yes* | Yes | Yes* | No | No | No | No | No | |
Phone Number | Yes(a) | Yes* | Yes* | Yes* | No | Yes* | Yes* | Yes* | Yes* | Yes | Yes* | No | No | No | No |
Currency | Yes(a) | Yes* | Yes* | Yes* | No | No | No | No | No | Yes* | Yes | No | No | No | No |
Binary Data | No | No | No | No | No | No | No | No | No | No | No | No | No | No | No |
Entity / Structure / Record | No | No | No | No | No | No | No | No | No | No | No | No | Yes(b) | No | No |
Integer Identifier | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes(c) | No |
Text Identifier | No | No | No | No | No | No | No | No | No | No | No | No | No | No | Yes(c) |
(a) テキスト以外の部分はText
型に変換され、比較されます。
(b) 両方のオペランドが同じ型の場合のみに可能で、その場合アトリビュートの値を比較します。
(c) 異なるエンティティの識別子は比較されますが、警告が発行されます。
*異なる型間の等値:
オペランドの型1 | オペランドの型2 | 結果 |
---|---|---|
Date | Date Time | Timeコンポーネントをドロップし、Date Timeオペランド型をDate型に変換します。 |
Date Time | Date | Timeコンポーネント(#00:00:00#)を追加し、Dateオペランド型をDate Time型に変換します。 |
TimeまたはDate Time | TimeまたはDate Time | Dateコンポーネント(#01-01-1900#)を追加し、Timeオペランド型をDate Time型に変換します。 |
Currency | Integer、Long Integer、またはDecimal | Currency型変数をIntegerデータ型に変換します。 |
EmailまたはPhone Number | Integer、Long Integer、またはDecimal | Decimal型、Long Integer型、またはIntegerオペランド型をText型に変換します。 |
Phone Number | 両方のオペランドをText型に変換します。 | |
Date Time、Date、またはTime | EmailまたはPhone Number | 両方のオペランドをText型に変換します。 |
Currency | Phone Number | 両方のオペランドをText型に変換します。 |
Like
この演算子はAggregateのフィルタ条件エディタ内でのみ有効で、結果を比較できるようにします。SQL内のLIKE
キーワードと同じセマンティックを有しています。LIKE
演算子を使用して、Expressionと比較できます。LIKE
の利点は、1つ以上の文字を表示するワイルドカード文字「%
」を使用できるようにすることです。
たとえば、「James」を名前のどこかに含むすべてのお客様に識別子を選択する場合、以下のフィルタ条件でこの情報を取得できます。
name LIKE '%James%'
以下はLIKE演算子で許可されているデータ型です。
LIKE | Text | Integer | Decimal | Boolean | DateTime | Date | Time |
---|---|---|---|---|---|---|---|
Text | Yes | (a) | (a) | (a) | (a) | (a) | (a) |
Integer | (a) | No | No | No | No | No | No |
Decimal | (a) | No | No | No | No | No | No |
Boolean | (a) | No | No | No | No | No | No |
DateTime | (a) | No | No | No | No | No | No |
Date | (a) | No | No | No | No | No | No |
Time | (a) | No | No | No | No | No | No |
(a) テキスト以外の部分はText
型に変換され、比較されます。
インデクサ宣言
この演算子はリスト内の特定の要素にアクセスするために使用されます。OutSystemsでは、インデックス(位置)はゼロから開始します。最初のレコードにアクセスするには以下のようにExpressionを入力します。
MyRecordList[0]
存在しないインデックスにアクセスした場合は、以下の実行時エラーが発生します。"Index n is out of range"
レコードは一連のエンティティやストラクチャであるため、特定されたレコードの特定のエンティティまたはストラクチャにアクセスできます。
MyRecordList[0].<entity name | structure name>
Expressionが整数値を返す場合、インデクサ演算子内のExpressionを使用できます。これにはユーザー関数の使用が含まれます。
MyRecordList[i-1].Customer.Name
(ここではi
はIntegerです)
MyRecordList[EmployeeOfMonth()].Employee.Name
(ここではEmployeeOfMonth
はInteger値を返すユーザー関数です)
演算子の優先順位
次のテーブルは、演算子の優先順位を優先順位の高いものから示しています。
演算子 | 説明 |
---|---|
- | 数値否定 |
NOT | 論理否定 |
/、* | 乗法演算子 |
-、+ | 加法演算子。 |
<、>、<=、>= | 関係演算子 |
=、<> | 等値演算子 |
LIKE | 類似演算子 |
AND | 論理AND |
OR | 論理OR |