タグ

2017年5月29日のブックマーク (14件)

  • NVL、COALESCE - オラクル・Oracle SQL 関数リファレンス

    NVL 関数の内容 式 expr1 が NULL なら expr2 の値を戻す。Null Value Logic の略 COALESCE 関数の内容 、 NVL 関数を一般化した関数で引数に含まれる最初の 「非 NULL値」 を戻す。 COALESCE( expr1,…, exprN ) のように可変長の引数をもつ。 ⇒ コアレス:空き領域を連結してより大きな空き領域に変換 COALESCE 関数の追加説明と注意事項 COALESCE 関数の引数の数 (N) が 1 の場合にはエラーを戻す。 N = 2 の場合 … NVL(expr1, expr2) と同じ N > 2 の場合 … CASE WHEN expr1 IS NOT NULL then COALESCE( expr2,..., exprN) end と自己参照した内容と同じになる。 ちなみに NVL( expr1, NVL( e

  • NVL2、NULLIF - オラクル・Oracle SQL 関数リファレンス

    NVL2、NULLIF Top | Knowledge| DB構築| 文字列関数| 日付関数| 集計関数| SQL関数(アルファベット順) SQL(抽出・更新)| SQL*Plus| PL/SQL| Utility| Structure| スキーマ| チューニング| 用語| 参考書

  • 逆引きSQL構文集 - テーブルを外部結合する

    外部結合を使用すると指定した列のデータがテーブルのどちらか一方にしかないレコードも抽出することができます. 外部結合には左外部結合,右外部結合,完全外部結合があります. 左外部結合 左外部結合は結合する列のデータを基準として,左側の表の内容をすべて抽出し,右側の表の内容は左側の表の内容と一致するもののみ抽出する結合です. 左外部結合を使用するにはLEFT OUTERE JOINを使用します. SELECT 列名1, 列名2, ... FROM テーブル名1 LEFT [OUTER] JOIN テーブル名2 ON テーブル名1.列名 = テーブル名2.列名 [WHERE 条件式など] LEFT OUTER JOINで結合するテーブルを指定し,どの列をキーにして結合するかをON句で指定します.なお,OUTERは省略可能です. サンプルに移動 右外部結合 右外部結合は左外部結合の反対です.すなわ

  • INSTR、INSTRB - オラクル・Oracle SQL 関数リファレンス

    INSTR、INSTRB 関数の内容 文字列 string 中の 検索文字列 substring を検索し、その検索文字列が現れた 文字、または、バイトの位置を示す正数を戻す (1 オリジン) 開始位置 position、検知回数 occurrence のデフォルトはともに 1 開始位置 position にマイナス値を指定すると 文末から文頭 に向けて検索する。マイナスを指定しても戻り値の出現位置は先頭からの正数となる。 INSTR、INSTRB 以外にも各国語キャラクタセットに使用する特定のコードポイント向けの関数がある。 INSTRC : 完全な Unicode 用 INSTR2 : UCS2 用 INSTR4 : UCS4 用 注意点 INSTR、INSTRB の 検索対象文字列の検索開始位置 position は 開始位置を 0 に指定してもエラーにならないが SUBSTR の

  • 【SQL変換関数】DECODE – 値を変換する(Oracle) – SQL Master データベースエンジニアとセキュリティエンジニアとLinuxエンジニアのための情報

    OracleではDECODE関数を使って、値を変換する事ができます。使い方はCASE命令と似ています。CASE命令で書き換える事も可能です。 文法: DECODE( x, target, new_value [ , target2, new_value2…..] [ , default] ) xで指定した値を評価し、それがtargetと等しい場合はnew_valueを返す。target2に等しい場合はnew_value2を返す。xの値がどの値とも一致しない場合はdefaultを返す。 使用例:result列が2の場合は’不合格’、1の場合は’合格’を返す。それ以外の場合は’集計中’を返す。 SELECT user, result, DECODE(result, 2, ‘不合格’, 1, ‘合格’, ‘集計中’) FROM tbExamTable; user   result  DECODE

  • オラクルテーブルメモ(Hishidama's Oracle table Memo)

    テーブルの作成 テーブルの最も基的な作成方法。 create table テーブル名 ( 項目名 データ型 〔default デフォルト値〕〔制約定義〕, 項目名 データ型 〔default デフォルト値〕〔制約定義〕, …, 〔制約定義〕 ) 〔表領域等の定義〕 ; テーブル名や項目名は大文字でも小文字でもいいが、暗黙に大文字に変換される。 ダブルクォーテーションで囲むと変換されない。(select文などで指定する際もダブルクォーテーションで囲む必要が出てくる) default句 データ型の宣言の後に「default デフォルト値」(例:「default 123」「default 'abc'」)を付けることで、その項目のデフォルト値を設定することが出来る。 省略した場合のデフォルト値はNULL。 項目を列挙したinsert文で項目を指定しなかった場合や、insert文やupdate文で

  • ORACLE/オラクルSQLリファレンス(LIKE)

    ワイルドカード”%”は、1文字以上の任意の文字列と一致します。 例2) 列「job_name」の先頭に文字列"JOB"が付くレコードを検索する(ワイルドカードに"_"を使用)

  • LISTAGG(集計関数) - オラクル・Oracle SQL 関数リファレンス

    全員の name を並び順を気にせずに連結する。 WITHIN GROUP は省略できないので意味のない 「order by null」 を指定してみた。数値を指定してもカラムの第 N 番目でソートというわけでない。 Oracle 11g R2 時点では実行計画に SORT GROUP BY があり、暗黙的に expr 昇順にソートされている。 SQL> select LISTAGG(name) WITHIN GROUP (order by null) concat_name 2    from listagg_sample; CONCAT_NAME -------------------------------------------------- あおきこばやしさとうすずきたかはしやまもと 部門毎に名前をカンマ区切りで連結する。名前の並び順は給料の高い順 SQL> select dep

  • アイ ラブ SQL (I love SQL) 第233回 | 集合研修 システム・テクノロジー・アイ銀座会場

    アイ ラブ SQL (I love SQL) 第233回「高度な副問合わせ ~その7 スカラー副問合わせ その3~」 (2008.12.15) SELECT句でスカラー副問合わせが使えるなんて、ビックリ!な方が多かったと思いますが、実はもっと驚くことに、INSERTのVALUES句でもスカラー副問合わせが使えるんですよ!! えっ?「VALUES句でもじゃなくて、VALUES句のかわりにでしょ?」ですか? はい、誰もが知っているINSERTにおける副問合わせの使用とは、次のような使い方ですよね。 実行例1 いえ、そうでは無くてVALUES句の中の値の代わりにスカラー副問合わせを使用できるんです。 実行例2 値の代わりだからと言って、2列分の値の挿入に2列をSELECTした副問合わせというわけにはいきません。 実行例3 あくまでも、スカラー副問合わせでなければいけません。しかし、

    アイ ラブ SQL (I love SQL) 第233回 | 集合研修 システム・テクノロジー・アイ銀座会場
  • http://asklife.info/archives/1912

    http://asklife.info/archives/1912
  • TO_CHAR(日付) - オラクル・Oracle SQL 関数リファレンス

    日付のフォーマット使用例 DATE 型のデフォルトの書式は NLS_DATE_FORMAT でフォーマットされる。TIMESTAMP 型は NLS_TIMESTAMP_FORMAT。タイムゾーン付きの場合には NLS_TIMESTAMP_TZ_FORMAT によってフォーマットされる。 TO_CHAR( DATE '2005-06-07', 'RRMMDD') ⇒ '050607' 日付と時刻のフォーマット使用例 TO_CHAR ( TIMESTAMP '2000-01-02 04:05:06', 'YYYY/MM/DD HH24:MI:SS DAY') ⇒ 2000/01/02 04:05:06 日曜日 日付に関する豆知識 曜日を求める TO_CHAR 関数で曜日を取得することも可能(和名、または、英名) 曜日を取得するには 書式指定に 'DAY' を指定する。 日の曜日はすべて同じ長

  • トランザクションの定義および制御

    7 トランザクションの定義および制御 この章では、トランザクション処理の実行方法について説明します。Oracleデータへの変更を確定するかまたは取り消すかの制御方法など、データベースの一貫性を保護する基的な方法を学習します。内容は次のとおりです。 基用語 トランザクションによるデータベースの保護 トランザクションの開始および終了方法 FOR句の使用方法 ROLLBACK文の使用方法 SAVEPOINT文の使用方法 RELEASEオプションの使用方法 SET TRANSACTION文の使用方法 デフォルト・ロックのオーバーライド 複数のコミットにわたるフェッチ 分散トランザクションの処理 ガイドライン 基用語 トランザクションの題に入る前に、この項で定義されている用語を理解する必要があります。 Oracleが管理するジョブまたはタスクは、セッションと呼ばれます。アプリケーション・プロ

  • SUBSTR、SUBSTRB - オラクル・Oracle SQL 関数リファレンス

    SUBSTR、SUBSTRB 関数の内容 SUBSTR は取り出す文字列をキャラクタ単位、 SUBSTRB はバイト単位で部分文字列の取り出しを行なう。 文字列 string の 開始位置 position から legnth 文字、または、バイト分 の部分文字列 (SUBSTRING) を戻す。 開始位置 position は 1 オリジンで始まるが 0 でも有効で 1 を指定したことになる。また、開始位置 position にマイナス値を指定すると文末から position 逆行した位置から文字列を取り出す。 文字列長 length を省略すると文字の最後までが対象となり、0 以下の数値も指定できるが結果は常に NULL を戻す。 BASIC にあるような左から length 文字 (left) 、右から length 文字 (right) のような個別の関数は用意されていない。 SU

  • CHAR と VARCHAR2 の違い - オラクル・Oracleをマスターするための基本と仕組み

    この比較は RTRIM('abc') 比較条件 RTRIM('abc______') のようにも見えるが実際は反対?でちょっと違う。 名前の通りスペースを PADDING した(満たした※) 後に比較する。短い方の文字列が長い方の文字列と同じ長さになるまでスペースが充填される。TRIM より PADDING をエミュレーションする方がメモリ使用量が少なくて速いのかも。 つまり「空白埋め」とは TRIM (FM 書式修飾子の FILL) ではなく PADDING であるということ。 vLength := GREATEST(length('abc'), length('abc______')); RPAD('abc', vLength ) 比較条件 RPAD('abc______', vLength) というイメージ 参考: RTRIM 関数、RPAD 関数、NLS_COMP 初期化パラメータ