LEAST

LEAST関数は、1つ以上の式のリストのうち、最小のものを戻します。

SQL構文

LEAST (Expression [,...])

パラメータ

LEASTには、次のパラメータがあります。

パラメータ 説明

Expression [,...]

最小の式の値を決定するために評価される1つ以上の式のリスト。オペランドまたは列には、数値、文字または日付を指定できます。リスト内の各式は、同じデータ型ファミリから採用する必要があります。

説明

  • リスト内の各式は、同じデータ型ファミリまたは日付サブファミリから採用する必要があります。データ型ファミリには、数値、文字および日付が含まれます。日付ファミリには、4つのサブファミリ(日付ファミリ、TIMEファミリ、TT_DATEファミリおよびTT_TIMESTAMPファミリ)が含まれます。たとえば、式のリストに数値式と文字式を指定することはできません。同様に、式のリストに日付式とTT_TIMESTAMP式を指定することはできません。

  • 最初のExpressionが数値の場合、TimesTenにより数値の優先順位が最も高い引数が決定されます。比較の前に、残りの引数は暗黙的にそのデータ型に変換され、そのデータ型が戻されます。

  • 最初のExpression が文字ファミリに属しており、オペランドまたは列がCHARまたはVARCHAR2型の場合、戻されるデータ型はVARCHAR2です。オペランドまたは列がNCHARまたはNVARCHAR2型の場合、戻されるデータ型はNVARCHAR2です。戻されるデータ型の長さは、最も大きい式の長さに等しくなります。あるオペランドまたは列がCHARまたはVARCHAR2型で、別のオペランドまたは列がNCHARまたはNVARCHAR2の場合、戻されるデータ型はNVARCHAR2です。

  • TimesTenでは、文字ファミリのデータ型に対して非空白埋め比較セマンティクスが使用されます。

  • 最初の式が日付ファミリの場合、戻されるデータ型は、最初の式と同じデータ型です。

  • いずれかの式がNULLの場合、結果はNULLになります。

  • 最初のExpression が文字ファミリに属しており、オペランドまたは列がTT_CHARまたはTT_VARCHAR型の場合、戻されるデータ型はTT_VARCHARです。オペランドまたは列がTT_NCHARまたはTT_NVARCHAR型の場合、戻されるデータ型はTT_NVARCHARです。戻されるデータ型の長さは、最も大きい式の長さに等しくなります。

  • 最大で256個の式を指定できます。

LEAST関数を使用して、最小値の文字列を戻します。

Command> SELECT LEAST ('SMALL','SMALLER','SMALLEST') FROM dual;
< SMALL >
1 row found.

LEAST関数を使用して、最小値の数値式を戻します。この例の場合、数値の優先順位が最も高いデータ型はNUMBERのため、比較の前に各引数は暗黙的にNUMBERに変換され、NUMBERデータ型が戻されます。最初に表leastexを記述し、列col1およびcol2に定義されているデータ型を確認します。次に、SELECT * FROM leastexを実行してデータを確認します。最後にLEAST関数を呼び出します。

Command> DESCRIBE leastex;

Table SAMPLEUSER.LEASTEX:
  Columns:
    COL1                            NUMBER (2,1)
    COL2                            TT_BIGINT

1 table found.
(primary key columns are indicated with *)
Command> SELECT * FROM leastex;
< 1.1, 1 >
1 row found.
Command> SELECT LEAST (Col2,Col1) from leastex;
< 1 >
1 row found.

DESCRIBEコマンドを使用して、戻されるデータ型がNUMBERであることを確認します。

Command> DESCRIBE SELECT LEAST (Col2,Col1) FROM leastex;

Prepared Statement:
  Columns:
    EXP                             NUMBER

LEAST関数を使用して、最小値のDATE式を戻します。DATEおよびTIMESTAMPは、同じ日付ファミリです。

Command> SELECT LEAST (DATE '2007-09-17', 
           TIMESTAMP '2007-09-17:10:00:00') FROM dual;
< 2007-09-17 00:00:00 >
1 row found.

LEAST関数を使用して、TT_DATE式およびTT_TIMESTAMP式のリスト内の最小値を戻そうと試みます。TT_DATETT_TIMESTAMPは異なる日付サブファミリに属しており、同じ式のリスト内では使用できないため、エラーが戻されます。

Command> SELECT LEAST (TT_DATE '2007-09-17',
           TT_TIMESTAMP '2007-09-17:01:00:00') FROM dual;
2817: Invalid data type TT_TIMESTAMP for argument 2 for function LEAST
The command failed.

LEAST関数を使用して、最小値のTIME式を戻します。

Command> SELECT LEAST (TIME '13:59:59', TIME '13:59:58',
           TIME '14:00:00') FROM dual;
< 13:59:58 >
1 row found.