比較関数
比較ルール
以下の比較関数は、型 UInt8 の 0 または 1 を返します。同じグループ内の値同士のみが
比較可能です(例: UInt16 と UInt64)。グループをまたいだ比較(例: UInt16 と DateTime)はできません。
数値と文字列の比較、文字列と日付、日付と時刻の比較は可能です。
タプルおよび配列の場合、比較は辞書式(レキシコグラフィック)になり、左側と右側のタプル/配列の各対応要素を順に比較します。
比較可能な型は次のとおりです:
- 数値および小数
- 文字列および固定長文字列
- 日付
- 日付と時刻
- タプル(辞書式比較)
- 配列(辞書式比較)
文字列はバイト単位で比較されます。一方の文字列に 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.11
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.10
2 つの値の間で、NULL セーフな「等価」比較を実行します。
両方の値が等しい場合、両方が NULL の場合も含めて true を返します。
値が異なる場合、または一方のみが NULL の場合は false を返します。
構文
引数
戻り値
2 つの値が等しい場合に true を返します。NULL も比較可能な値として扱います。
- x = y の場合は
trueを返します。- x と y が両方とも NULL の場合は
trueを返します。 - x != y の場合、または x と y の一方だけが NULL の場合は
falseを返します。Bool
- x と y が両方とも NULL の場合は
例
数値と NULL を使った基本的な使用例
less
導入バージョン: v1.1
2 つの値を比較し、一方が他方より小さいかどうかを判定します。
構文
引数
戻り値
a が b より小さい場合は 1、それ以外の場合は 0 を返します(UInt8)。
例
使用例
lessOrEquals
導入バージョン: v1.1
2 つの値を比較し、「以下(less-than-or-equal-to)」の関係かどうかを判定します。
構文
引数
戻り値
a が b 以下の場合は 1 を返し、それ以外の場合は 0 を返します。戻り値の型は UInt8 です。
例
使用例
notEquals
導入バージョン: v1.1
2 つの値が等しくないかどうかを判定します。
構文
引数
戻り値
a が b と等しくない場合は 1 を返し、それ以外の場合は 0 を返します(UInt8)。
例
使用例