ラベル oracle の投稿を表示しています。 すべての投稿を表示
ラベル oracle の投稿を表示しています。 すべての投稿を表示

2013年11月12日火曜日

ORACLE RPAD LPAD

ORACLEで左右に特定の文字列を連結する場合にはRPAD関数・LPAD関数を使用します。
RPAD関数・LPAD関数連結する文字列を指定しなかった場合は、指定桁数分の半角空白が連結されます。

書式
SELECT RPAD(文字列, 指定桁数, [連結文字]) FROM DUAL;

SELECT LPAD(文字列, 指定桁数, [連結文字]) FROM DUAL;


例
文字列(りんご)に左右それぞれ文字列(青森産)を連結する場合。

SELECT RPAD(りんご, 6, 青森産) FROM DUAL;

SELECT LPAD(りんご, 6, 青森産) FROM DUAL;


結果は以下のようになります。


RPAD
-----------
りんご青森産

LPAD
-----------
青森産りんご



  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月11日月曜日

ORACLE ROLE

ORACLEで特定のユーザーに権限を付与する場合、GRANT~TOを使用します。
また、逆に付与した権限を取り消す場合は、REVOKE~FROMを使用します。

書式
GRANT ロール TO ユーザー名;

書式
REVOKE ロール FROM ユーザー名;


例
DBAロールをUSERに付与し、また取り消す場合。

GRANT DBA TO USER;

REVOKE DBA FROM USER;


結果はGRANT DBA TO USER;でDBAロールが付与され、
REVOKE DBA FROM USER;で付与されたDBAロールが取り消されます。



  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月8日金曜日

ORACLE CONCAT

2つの文字列を結合して取得したい場合はCONCAT関数を使用します。
また、「||」を使用しても同様の結果が返ります。

書式
SELECT CONCAT(文字列 , 文字列) FROM DUAL;


例
文字列(あいう)と文字列(えお)を結合して取得したい場合。

SELECT CONCAT(あいう,えお) FROM DUAL;


結果は以下のようになります。

CONCAT
---------
あいうえお


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月7日木曜日

ORACLE MOD

ORACLEで除算の余りを取得したい場合にはMOD関数を使用します。
MOD関数は除算結果の余りのみを返し、0で割った場合は割られた数がそのまま返ります。

書式
SELECT MOD(数値 , 数値) FROM DUAL;


例
以下の除算の余りを求める場合。
5÷2
4÷3
10÷7

SELECT MOD(5,2), MOD(4,3), MOD(10,7) FROM DUAL;

結果は以下のようになります。


MOD
-----
1
1
3
  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月6日水曜日

ORACLE ABS

ORACLEで数値の絶対値を取得したい場合はABS関数を使用します。
ABS関数でNULLの項目を指定するとNULLが返されます。
また、戻り値のデータ型は指定した項目を同じになります。

書式
SELECT ABS(項目) FROM DUAL;


例
項目(1)、項目(100)、項目(-10)、項目(NULL)の絶対値を取得したい場合。


SELECT ABS(1) , ABS(100) , ABS(-10) , ABS(NULL) FROM DUAL;


結果は以下のようになります。

ABS
-----
1
100
10
NULL


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月5日火曜日

ORACLE NULLIF

ORACLEで2つの値を比較して同じ場合にNULLを返す場合にはNULLIFを使用します。
項目1と項目2を比較し、同じ場合はNULLを、異なる場合は項目1の値を返します。

書式
SELECT NULLIF(項目1 , 項目2) AS RESULT FROM DUAL;


例
値(1)と値(1)を比較した場合と値(1)と値(2)を比較した場合。

SELECT NULLIF(1 , 1) AS RESULT FROM DUAL;

SELECT NULLIF(1 , 2) AS RESULT FROM DUAL;


結果は以下のようになります。

RESULT
-------
1

RESULT
-------



  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年11月1日金曜日

ORACLE SIGN

ORACLEで数値の符号を取得したい場合はSIGN関数を使用します。
SIGN関数は指定した数値項目の符号を返し、値がNULLの場合はNULLが返却されます。

書式
SELECT SIGN (数値項目) FROM DUAL;

例
以下の項目の符号のみを取得したい場合。

数値
-----
     10
   -10
      0
NULL

SELECT SIGN(10) , SIGN(-10) , SIGN(0) , SIGN(NULL) FROM DUAL;

結果は以下のようになります。

SIGN
-----
   1
  -1
   0
NULL


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月30日水曜日

ORACLE MEDIAN

ORACLEで中央の値を取得するにはMEDIAN関数を使用します。
MEDIAN]関数は複数の数値項目の中から中央値を返します。

書式
SELECT MEDIAN(列名) FROM テーブル名;

例
以下のようなテーブルがあり、中央の値を取得したい場合。

テーブル名:果物一覧テーブル
名前    個数
-------  ------

りんご        1
みかん        2
いちご        3
ぶどう        4
もも          5

SELECT MEDIAN(個数) FROM 果物一覧テーブル;

結果は以下のようになります。

MEDIAN(個数)
------------
3
  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月29日火曜日

ORACLE GREATEST

ORACLEで複数項目の中から最大の値を取得するにはGREATEST関数を、最小の値を取得するにはLEAST関数を使用します。

書式
SELECT GREATEST (項目1 , 項目2 , …)FROM DUAL;

SELECT LEAST (項目1 , 項目2 , …) FROM DUAL;

例
項目(1 , 2 , 3 , 4)から最大のものと最小のものを取得する場合。

SELECT GREATEST (1 , 2 , 3 , 4)FROM DUAL;

SELECT LEAST (1 , 2 , 3 , 4) FROM DUAL;

結果は以下のようになります。

GREATEST
----------
              4

LEAST
----------
              1


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月28日月曜日

ORACLE AVG

ORACLEで特定列の平均値を取得する場合はAVG関数を使用します。
AVG関数は数値項目の平均の値を返します。

書式
SELECT AVG(列名) FROM テーブル名;

 例
以下のようなテーブルがあり、数値の平均を取りたい場合。

テーブル名:果物一覧テーブル
名前   個数
------ -------
りんご      1
みかん      2
いちご             8
ぶどう            10
もも                5

SELECT AVG(個数) FROM 果物一覧テーブル;

結果は以下のようになります。

AVG(個数)
----------
5.2


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月25日金曜日

ORACLE TRUNCATE

ORACLEで特定のテーブルのデータを切り捨てたいときはTRUNCATEを使用します。
TURNCATEを使用すると高速にテーブル内のデータを切り捨てることができます。
ロールバックなどが不要な場合に全件削除したい場合に有効的です。

書式
TRUNCATE TABLE テーブル名;

例
以下のようなテーブルがあり、テーブル内のデータを全件削除したい場合。

テーブル名:果物一覧テーブル
名前  個数
-----  -----
りんご        1
みかん       1
いちご        1

TRUNCATE TABLE 果物一覧テーブル;

結果は以下のようになります。


名前  個数
-----  -----

  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月23日水曜日

ORACLE ROWNUM

ORACLEで先頭から指定する件数のレコードを取得する場合はROWNUMを使用します。
ROWNUMに値を指定することで表示する件数を指定したり、先頭から1件目のみを表示したりできます。

書式
SELECT 列名 FROM テーブル名 WHERE 条件 AND ROWNUM;

例
以下のようなテーブルがあり、個数が2個以上のものを先頭から3件表示したい場合

テーブル名:果物一覧テーブル
名前    個数
------  ----
りんご        2
みかん       2
いちご        1
ぶどう        3
もも           2

SELECT * FROM 果物一覧テーブル WHERE 個数 >= 2 AND ROWNUM <= 3;

結果は以下のようになります。

名前    個数
------  ----
りんご        2
みかん       2
ぶどう        3


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月21日月曜日

ORACLE INITCAP

ORACLEで英字の文字列の先頭を大文字に変化したい場合はINITCAP関数を使用します。
また先頭以外の文字列は小文字に変換されます。

書式
SELECT INITCAP(文字列) FROM DUAL;

例
文字列「ringo」「RINGO」があり、先頭大文字に変換したい場合。

SELECT INITCAP('ringo','RINGO')FROM DUAL;

結果は以下のようになります。

INITCAP
------------
Ringo
Ringo


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月20日日曜日

ORACLE TRIM

ORACLEで空白を削除して結果を表示するにはTRIMを使用します。
TRIMは取得元の文字列の左右の空白を削除して結果を出力します。
中間に含まれる空白については無視されます。
またRTRIMとLTRIMもあり、それぞれ右の空白だけ、左の空白だけ削除して出力します。

書式
SELECT TRIM(文字列) FROM DUAL;

SELECT RTRIM(文字列) FROM DUAL;

SELECT LTRIM(文字列) FROM DUAL;

例
「  りんご  」の文字列からそれぞれ空白を削除して出力したい場合。

SELECT TRIM('  りんご  ') FROM DUAL;

SELECT RTRIM('  りんご  ') FROM DUAL;

SELECT LTRIM('  りんご  ') FROM DUAL;

結果はそれぞれ以下のようになります。

TRIM
------------
'りんご'

RTRIM
------------
'  りんご'

LTRIM
------------
'りんご  '



  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月17日木曜日

Oracle でシステム日付を文字列で取得

よくやるのでメモ。

select
 to_char(SYSTIMESTAMP,'yyyy/mm/dd hh24:mi:ss')
from dual;

ちなみに、MySQLの場合は

select DATE_FORMAT(now(),'%Y/%m/%d %k:%i:%s');

参考:

ORACLE/オラクルSQLリファレンス(SYSDATE/SYSTIMESTAMP)

SYSDATE、SYSTIMESTAMP - オラクル・Oracle SQL 関数リファレンス

MySQL では、sysdate() ではなく、now()を使うのが無難かも

SQL 日付、時刻の取得、フォーマット変更(MySQL、PostgreSQL、ORACLE)


Written with StackEdit.

  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月16日水曜日

ORACLE LENGTH LENGTHB

ORACLEで文字列の文字数を取得する場合はLENGTH関数を使用します。
また、文字列をバイト数で取得する場合にはLENGTHB関数を使用します。

書式
SELECT LENGTH(文字列) FROM テーブル名 WHERE 条件;

SELECT LENGTHB(文字列) FROM テーブル名 WHERE 条件;


例
以下のテーブルがあり、名前の文字数とバイト数を取得する場合。

テーブル名:果物一覧テーブル
名前 個数
りんご   1
みかん   1
いちご   1
ぶどう   1
もも     1

SELECT LENGTH(名前) FROM 果物一覧テーブル;

SELECT LENGTHB(名前) FROM 果物一覧テーブル;


結果は以下のようになります。

名前       LENGTH(名前)  LENGTHB(名前)
------------ -------------------- ---------------------
りんご                              3                         6
みかん                             3                         6
いちご                              3                         6
ぶどう                            3                         6
もも                                  2                         4
  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月15日火曜日

ORACLE SUBSTR SUBSTPB

ORACLEで文字列の一部を抜き出すにはSUBSTR関数もしくはSUBSTPB関数を使用します。
SUBSTR関数では開始位置と文字数を指定します。またSUBSTPB関数では開始位置とバイト数を指定します。開始位置よりそれぞれ条件を満たす範囲で文字列を抜き出すことができます。

書式
SELECT SUBSTR(文字列,開始位置,文字数) FROM DUAL;

書式
SELECT SUBSTPB(文字列,開始位置,バイト数) FROM DUAL;

例
以下のような文字列がありそれぞれの条件でみかんという文字を抜き出したい場合。

文字列:りんごみかんいちごぶどうもも

SELECT SUBSTR('りんごみかんいちごぶどうもも',4,3) FROM DUAL;

SELECT SUBSTPB('りんごみかんいちごぶどうもも',7,6) FROM DUAL;

結果はともに以下のようになります。

みかん


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月9日水曜日

ORACLE REGEXP_LIKE関数

ORACLEで正規表現を利用して比較をするにはREGEXP_LIKE関数を使用します。
LIKE演算子のように複数のパターンの中から当てはまった結果を返します。
また最後尾に検索モードを指定することで大文字小文字の区別もつけることができます。

書式
SELECT 列 FROM 表 WHERE REGEXP_LIKE(列,検索パターン,検索モード);

例
以下のようなテーブルがあり、個数が2~4のものを表示したい場合。

テーブル名:果物一覧テーブル
名前 個数
りんご  5
みかん  4
いちご   3
ぶどう    2
もも       1

SELECT * FROM 果物一覧テーブル WHERE REGEXP_LIKE(個数,'[2-4]');

結果は以下のようになります。

名前  個数
----- -----
みかん   4
いちご   3
ぶどう   2



  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月8日火曜日

ORACLE ROUND

ORACLEで値を四捨五入して結果を表示したい場合はROUNDを使用します。
ROUNDを使用する際に少数桁を指定することで、小数点以下を少数桁で四捨五入します。

書式
SELECT ROUND(数値,少数桁) FROM DUAL;

例
値(100.456)を四捨五入した結果を取得したい場合。

SELECT ROUND(100.456) FROM DUAL;

結果は以下のようになります。

ROUND
----------
100

例2
値(100.456)を少数桁数(2桁目)を指定して四捨五入した結果を取得したい場合。

SELECT ROUND(100.456,2) FROM DUAL;

結果は以下のようになります。

ROUND
----------
100.5


  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly

2013年10月7日月曜日

ORACLE TO_NUMBER

ORACLEで文字列を数値に変換したい場合はTO_NUMBERを使用します。
また、TO_CHARを使用することで数値を文字列に変換することもできます。

書式
SELECT * TO_NUMBER(値) FROM 書式;

例
文字列1234を数値に変換したい場合。

SELECT * TO_NUMBER(1234) FROM DUAL;

結果は以下のようになります。
TO_NUMBER('1234')
-------------------
         1234
  • この記事をシェアする

  • このエントリーをはてなブックマークに追加
  • このブログの更新をチェックする

  • follow us in feedly