CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
![MySQLで分析関数を模倣1(前編)](https://cdn-ak-scissors.b.st-hatena.com/image/square/3cf0d8ddcd822af25036855804de31d497f900de/height=288;version=1;width=512/https%3A%2F%2Fcodezine.jp%2Fstatic%2Fimages%2Farticle%2F3107%2F3107_arena.png)
はじめに 「MySQLで分析関数を模倣」シリーズに続いて、MySQLでOracleのSQLを模倣する方法を紹介したいと思います。本稿では、minus、intersect、完全外部結合、パーティション化された外部結合と同じ結果を取得するSQLを扱います。 対象読者 MySQLで、OracleのSQLと同じ結果を取得するSQLを書きたい方 OracleのSQLの理解を深めたい方 必要な環境 本稿で扱うSQLは、MySQL 5.1.28で動作確認しました。ソースコードはOracle 10.2.0.1.0でも動作確認しました。その他、次の環境でも応用が可能です。 PostgreSQL SQL Server DB2 1. minus minusは、差集合演算を行います。Oracle以外のデータベースでは、exceptで実装されています(標準SQLでexceptとして定義されているため)。 MySQL
MySQLでOracleのrownumのような行番号を付加する方法として、Web上でよく見かけるのは以下のようなユーザー変数を使ったSQL文で、2つのSQL文を発行しなければならない。 set @i:=0; select @i:=@i+1 as rownum,user_id from user; しかし、kotori::logで紹介されていた方法を用いれば、1回のSQL文で付加することができる。メモメモ。 select @i:=@i+1 as rownum,user_id from (select @i:=0) as dummy,user; なるほど。サブクエリでユーザー変数を初期化しているのね。 で、ふとorder by節で並び替えた時の挙動が気になったので、早速試してみた。 全部で4つ試していて、始めの2つがテーブルのidカラムで並び替え(昇順、降順)、残りの2つ(3つ目と4つ目)が生
今回のエントリーが最終回です。 内容は「Webアプリケーションの改変(基本的にはSQL文)」についてです。 1)日付データの編集は? (to_char <-> date_format) 2)SEQUENCEの移行は? (SEQUENCE <-> auto_increment) 3)where句で使うrownumは? (rownum <-> limit) 4)NVL関数は? (nvl <-> ifnull) 5)CHR関数を使った「改行コード」の変換は? 6)そのまま使えた同一構文の関数 7)Oracle固有の表の外部結合を標準SQL化 8)日付型にNULLを許さないMySQL 9)DUAL表を使ったSQL文は? 10)弊社製品101NEO固有の問題 11)データベース接続について 参照:MySQLのSQLリファレンス 参照:OracleのSQL言語リファレンス Oracle SQL> se
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く