「SELECT (SQL)」の版間の差分

削除された内容 追加された内容
TASH (会話 | 投稿記録)
TASH (会話 | 投稿記録)
38行目:
:単一の行を操作する関数で、一つの行に対し、一つの結果を返していく関数。SELECT句、WHERE句、ORDER BY句で使用可能で、以下の種類がある。また、ネスト(入れ子)に制限はない。
*文字関数
:文字を操作する関数。主なものに以下のものがあるが、'''対応しているDBMSは各種異なっている'''ため、注意が必要である。
::LOWER …殆どのDBMSで対応。指定した文字列を小文字に変換する。 例:LOWER('ABC') → abc
::UPPER …指定した文字列を大文字に変換する。 例:UPPER('xyz') → XYZ
::INITCAP …Oracle、postgreSQLで指定可能。指定した文字列の先頭のみを大文字に変換する。 例:INITCAP('WORLD')→ World
::INSERT …MySQL、DB2で指定可能。指定した文字列に特定の文字列を置換、挿入する。(任意の文字列,挿入位置,置換を行う文字数《0の場合は、挿入》、挿入する文字) 例:INSERT('123',2,1,'to') → 1to3 INSERT('worldnews',6,0,'weather') →worldweathernews
::CONCAT …Oracle、MySQL、DB2で指定可能。指定した文字列を結合する。例:CONCAT('blue','bird') → bluebird
::SUBSTR …指定した文字列を抽出する。(探索する文字列,探索開始の位置《-の場合、文字列末尾から》,抽出する文字数《省略した場合は全て》) 例:SUBSTR('architecture',6,3) → tec 。
::LEFT/RIGHT …MySQL、SQLserverなどに対応。文字列の左/右部分を抽出する。
::INSTR …指定した文字列の位置を参照する。(探索する文字列,参照する文字《複数存在すると最初に探索された位置が参照される》) 例:INSTR('emperor','r') → 5 
::SUBSTR …Oracle、MYSQLなどに対応。指定した文字列を抽出する。(探索する文字列,探索開始の位置《-の場合、文字列末尾から》,抽出する文字数《省略した場合は全て》) 例:SUBSTR('architecture',6,3) → tec 。
::LENGTH …指定した文字列の長さを参照する(間の空白も含む)。例:LENGTH('Sri Jayawardenepura Kotte') →24
::INSTR …Oracle、MySQL、Accessで指定可能。指定した文字列の位置を参照する。(探索する文字列,参照する文字《複数存在すると最初に探索された位置が参照される》) 例:INSTR('emperor','r') → 5 
::TRIM … 指定した文字を削除する。対応できるのは先頭と末尾のみである。 例:TRIM('S' FROM 'sword' ) →word
::LENGTH/LEN …指定した文字列の長さを参照する(間の空白も含む)。例:LENGTH('Sri Jayawardenepura Kotte') →24
::TRIM … ほとんどのDBMSに対応。指定した文字を削除する。対応できるのは先頭と末尾のみである。 例:TRIM('S' FROM 'sword' ) →word
::REPLACE …指定の文字を置き換える(該当文字は全て置き換わる)。 例:REPLACE('encyclopedia','e','u') →uncyclopudia
などがある。
::REPEAT/REPLICATE …MySQL、PostgreSQLなどに対応。指定の文字を任意の数だけ繰り返す。 例: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)乗の値を四捨五入する。