|
||||||||||||||||||||||||||||
| 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+税) |
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||


