| ||||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||||
| GREATESTとLEAST関数 | ||||||||||||||||||||||||||||
ファンクションの移行についての説明は今回で最後となります。列の値を返すファンクションとビット列に関する関数を説明し、ストアドプロシージャの移行について紹介します。 Oracleには、複数の値の中から最も大きいものを返すGREATEST関数と、最も小さいものを返すLEAST関数があります。 | ||||||||||||||||||||||||||||
SELECT GREATEST ('HARRY', 'HARRIOT', 'HAROLD') | ||||||||||||||||||||||||||||
| PostgreSQLには同じような関数はありませんが、配列を引数に取るストアドプロシージャ(リスト10)を作成することで同様の結果を得ることができます(リスト10のIF文の比較演算子を「 | ||||||||||||||||||||||||||||
CREATE OR REPLACE FUNCTION | ||||||||||||||||||||||||||||
リスト10:ストアドプロシージャGREATESTの作成 | ||||||||||||||||||||||||||||
| 実行結果は次のようになります。 | ||||||||||||||||||||||||||||
Greatest | ||||||||||||||||||||||||||||
| OR REPLACE句を使うと、上述したDROP FUNCTION文を実行せずに、ストアドプロシージャを再定義することができます。 | ||||||||||||||||||||||||||||
| BITAND関数 | ||||||||||||||||||||||||||||
Oracleでは、ビットごとにAND演算をするためにはBITAND関数を使用します。 | ||||||||||||||||||||||||||||
SELECT BITAND( 2, 6 ) FROM DUAL; | ||||||||||||||||||||||||||||
| PostgreSQLにはビット演算子がありますので、それを使用します。 | ||||||||||||||||||||||||||||
SELECT 2 & 6; | ||||||||||||||||||||||||||||
| 実行結果は次のようになります。 | ||||||||||||||||||||||||||||
?column? | ||||||||||||||||||||||||||||
| BIN_TO_NUM関数 | ||||||||||||||||||||||||||||
Oracleには、1と0の繰り返しを数値に変換する、BIN_TO_NUM関数があります。 | ||||||||||||||||||||||||||||
SELECT BIN_TO_NUM(1,0,1,0) FROM DUAL; | ||||||||||||||||||||||||||||
| PostgreSQLにはビット列型があり、ビット列の定数はB'1010'のように、文字列に近い表記で表すことができます。これを整数型にキャストすることで同じ効果を得られます。 | ||||||||||||||||||||||||||||
SELECT CAST( B'1010' AS INTEGER ) | ||||||||||||||||||||||||||||
| 実行結果を見てみましょう。 | ||||||||||||||||||||||||||||
BIN_TO_NUM(1,0,1,0) | ||||||||||||||||||||||||||||
| 1 2 次のページ | ||||||||||||||||||||||||||||
| 書籍紹介 まるごと PostgreSQL! Vol.1 日本での市場シェアNo.1(オープンソースRDBMS部門)データベースソフトPostgreSQLの最新情報を、開発メンバーを含む豪華執筆陣が多面的かつ詳細に解説します。PostgreSQL用クラスタリング/レプリケーションソフト、PostgreSQL⇔Oracle移行、PostgreSQLによる大規模サイト構築法、新バージョンPostgreSQL 8.0先行レビュー、PostgreSQL用.NETデータプロバイダ等々、他では読めない貴重な記事が満載です。発売日:2004/12/08発売 定価:\1,890(本体 \1,800+税) | ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||


