SELECT (SQL)
例:REPEAT('S',5) → SSSSS REVERSE ...MySQL、SQLserverに対応。文字列を反転させる。 例REVERSE('Lee') → eeL SPACE ...MySQL、SQLserver、DB2などに対応。スペース文字列を作成する。
などがある。
数値関数
数値を操作する関数。汎用されているものとしてROUND(四捨五入)、TRUNC(切り捨て)、MOD(剰余)などがある。ROUNDとTRUNCには引数に共通のルールがあり、(数値,n)において、n>=0の場合は小数点第(n+1)位を処理する。n<0の場合は10の(-n-1)乗の値を四捨五入する。
ROUND ...指定された値の四捨五入を行う。例:ROUND(123.456,0) →123 ROUND(123.456,1) →123.5 ROUND(123.456,-1) →120 TRUNC ...指定された値を切り捨てる。 例:TRUNC(123.456,-2) → 100 MOD ...除算における剰余を返す。(被除数,除数) 例:MOD(1000,30) → 10
日付関数
日付を操作する関数。各種DBMSによって大きく操作方法が異なるため、注意が必要。
データ型変換関数
特定のデータ型を特定のデータ型に変換できる。同様に、各種DBMSによって使用可能な関数が異なる。
HAVING句は、GROUP BY句で集計した結果に対して抽出条件を指定する際に使用する。グループ関数の使用が可能である。順序はGROUP BY句と前後になっても問題ない。
副問合せは値が一定でない値に対して問合わせが可能であり、必ず( )で囲む必要がある。FROM句、WHERE句、HAVING句で使用可能。FROM句で指定されていない別表を参照することも可能であり、また、ネストにも制限はない(但し、パフォーマンスは低下するおそれがある)。
副問合せに対して単一行を選択したい場合は比較演算子を用いる。この場合、複数行が検索されればエラーとなる。もし、複数行を選択したい場合は、一般にIN、他にANY(SOME)+比較演算子、ALL+比較演算子、またはEXISTSを用いる。いずれの式も頭にNOTを付記すれば、否定表現となる。この比較条件の記述はDBMSの環境に依存していることが多い。
WHEREにおいて、一定の範囲内にある行を求めたい場合はBETWEENを用いると便利である。書式は以下の通りである。 列名 BETWEEN ( A AND B )
これによって、A以上B以下に該当する行が選択される(必ず、以上、以下の関係になるため、未満、あるいは超を求めたい場合はOR演算子と不等号を用いる必要がある)。