ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework アプリケーション開発ガイド

[目次][索引][前へ][次へ]

3.4.2 データを比較する際の留意点

ここでは,データを比較する際の留意点について説明します。

<この項の構成>
(1) データ型一般の比較
(2) 文字データの比較
(3) 数データの比較
(4) 日付,時刻,および時刻印データの比較

(1) データ型一般の比較

GROUP BY句を指定した検索では,列すべての結果の値が同一である行が,同じグループとして扱われます。

(2) 文字データの比較

文字データの比較は,JavaのString型データの比較に準じます。

文字データと日付,時刻,または時刻印データを比較する場合,日付,時刻,または時刻印データの形式に沿った文字列定数との比較だけが有効になります。

WHERE句の数データと文字データの比較では,文字データが明示的に数データの型にキャストされ,かつ,文字データの書式が比較対象の数データの型に従っている場合にだけ比較できます。

ポイント
文字データのキャストについて
比較に限らず,値式に現れた文字データについても同様にキャストができます。
キャストによって数データと比較できる文字データの書式について次の表に示します。

表3-9 キャストによって数データと比較できる文字データの書式

数データの型 キャスト指定 文字データの書式
規則
整数型 (TINYINT)
(SMALLINT)
(INT[EGER])
(BIGINT)

  • 0〜9の数字を指定します。
  • ピリオドを含んではいけません。
  • 値は数データの範囲内に収まる必要があります。
  • 正の値の場合,プラス(+)の符号を指定できません。
正常に比較できる例
  • '12'
  • '-1' (マイナスの符号を付ける)
比較がエラーになる例
  • '12.0' (ピリオドを含む)
  • '1b3' (数字以外を含む)
  • '+1' (プラスの符号を付ける)
実数型および10進数 (REAL)
(FLOAT)
(DOUBLE)
(DEC[IMAL])

  • 0〜9の数字を指定します。
  • ピリオドを含められます。
  • 値は数データの範囲内に収まる必要があります。
  • 値にプラス(+)またはマイナス(-)の符号を指定できます。
正常に比較できる例
  • '12'
  • '12.0' (ピリオドを含む)
  • '-1.0' (マイナスの符号を付ける)
  • '+1.0' (プラスの符号を付ける)
比較がエラーになる例
  • '1b3.0' (数字以外を含む)

注 正負の符号の付加は,java.lang.Numberクラスの実装方式に従います。


 

キャスト指定の形式については,「4.4.18 値式」を参照してください。

(3) 数データの比較

比較するデータのデータ型が異なる場合,範囲の広い方のデータ型に暗黙的にキャストして比較されます。範囲の広さを次に示します。

DECIMAL = NUMERIC > FLOAT = DOUBLE > REAL > BIGINT > INTEGER > SMALLINT > TINYINT

(4) 日付,時刻,および時刻印データの比較

日付,時刻,および時刻印データの比較は,Javaのjava.sql.Dateクラス,java.sql.Timeクラス,およびjava.sql.Timestampクラスの比較に準じます。