比較関数
比較ルール
以下の比較関数は、UInt8 型で 0 または 1 を返します。同じグループ内の値のみが
比較可能です(例: UInt16 と UInt64)であり、グループをまたいだ比較(例: UInt16 と DateTime)はできません。
数値と文字列の比較に加えて、文字列と日付、日付と時刻の比較も可能です。
タプルおよび配列については辞書式順序で比較されます。つまり、左側と右側のタプル/配列の
それぞれ対応する要素ごとに比較が行われます。
比較可能な型は次のとおりです:
- 数値と 10 進数
- 文字列と固定長文字列
- 日付
- 日付と時刻
- タプル(辞書式比較)
- 配列(辞書式比較)
文字列はバイト単位で比較されます。そのため、一方の文字列に UTF-8 でエンコードされたマルチバイト文字が含まれている場合、意図しない結果になる可能性があります。 文字列 S1 が別の文字列 S2 を前方一致(プレフィックス)として含む場合、S1 は S2 より長いと見なされます。
equals
導入バージョン: v1.1
2 つの値が等しいかどうかを比較します。
構文
引数
返される値
a が b と等しい場合は 1 を、それ以外の場合は 0 を返します(UInt8 型)。
例
使用例
greater
導入バージョン: v1.1
2つの値を比較し、一方が他方より大きいかどうかを判定します。
構文
引数
戻り値
a が b より大きい場合は 1、それ以外の場合は 0 を返します(UInt8 型)。
例
使用例
greaterOrEquals
バージョン v1.1 で導入
2 つの値を比較し、「以上」の関係にあるかどうかを判定します。
構文
引数
返される値
a が b 以上の場合は 1、それ以外の場合は 0 を返します。UInt8
例
使用例
isDistinctFrom
導入バージョン: v25.9
2 つの値の間で、NULL セーフな「等しくない」比較を行います。
一方の値が NULL で他方が NULL ではない場合を含め、値が異なる(等しくない)場合に true を返します。
値が等しい場合、または両方が NULL の場合は false を返します。
構文
引数
戻り値
2つの値が異なる場合に true を返します。NULL は比較対象として扱われます。
- x != y の場合に
trueを返します。 - x または y の一方のみが NULL の場合に
trueを返します。 - x = y の場合、または x と y の両方が NULL の場合に
falseを返します。Bool
例
数値と NULL を使った基本的な使用例
isNotDistinctFrom
導入バージョン: v25.9
2 つの値に対して、NULL セーフな「等価」比較を実行します。
両方が NULL の場合を含め、値が等しいときは true を返します。
値が異なる場合、または片方のみが NULL の場合は false を返します。
構文
引数
戻り値
2つの値が等しい場合に true を返します。NULL も比較可能な値として扱います。
- x = y の場合、
trueを返します。 - x と y が両方とも NULL の場合、
trueを返します。 - x != y の場合、または x と y のどちらか一方のみが NULL の場合、
falseを返します。Bool
例
数値と NULL を使った基本的な使用例
less
導入バージョン: v1.1
2 つの値を比較し、一方が他方より小さいかどうかを判定します。
構文
引数
戻り値
a が b より小さい場合は 1、それ以外の場合は 0(UInt8 型)を返します。
例
使用例
lessOrEquals
v1.1 で導入。
2つの値が「以下」の関係にあるかどうかを比較します。
構文
引数
返される値
a が b 以下の場合は 1 を返し、それ以外の場合は 0 を返します。戻り値の型は UInt8 です。
例
使用例
notEquals
導入バージョン: v1.1
2 つの値が等しくないかどうかを判定します。
構文
引数
返り値
a が b と等しくない場合は 1、それ以外の場合は 0 を返します(UInt8)。
例
使用例