SQL の where 句を where 0=0 で書き出して以降の条件をすべて and id = 10 のように and から書き出すようなプログラミング上のテクニックがありますが、ここでは union 句に拡張してみたいと思います。
Tag Archives: sql
[ Oracle SQL ] 最大値, 最小値を取得する関数 ( greatest / least )
Oracle では複数の値の中から最大値は greatest 関数、最小値は least 関数で取得することができます。ここでは、それら2つの関数の使用例を掲載しています。
[ PHP ] SQL のクォート ( Oracle, MySQL, SQL Server, DB2 )
ここでは、Zend Framework-1.11 による PHP から各種データベースへのクエリ発行時に行う SQL 文のクォート処理の実装例を掲載しています。エスケープによる SQL インジェクション対策は必須ともいえます。
[ Oracle ] 月の日数(最終日)を文字列型、数値型で取得する ( last_day, extract )
ここでは、Oracle の last_day 関数と extract 関数を使って、月の最終日を文字列型、数値型でそれぞれ取得する SQL のサンプルを掲載しています。
[ Oracle SQL ] 文字列を連結する ( concat 関数と || 演算子 )
ここでは、Oracle で文字列を連結する || 演算子と、文字列の連結を行う concat 関数についてのサンプル SQL を掲載しています。
[ Oracle ] Date 型や Timestamp 型から年月日や曜日情報を取得 ( EXTRACT )
Date 型や Timestamp 型から 年や月の情報を EXTRACT 関数で取得することができます。ここでは使用例を掲載しています。
[ Oracle ] テーブル定義情報の取得 ( ALL_TAB_COLUMNS )
ここでは、Oracle のテーブルの定義情報を取得する SQL を掲載しています。なお、ここで示す SQL は Oracle9.0 以降を対象としており、それ以前の Oracle については対応していません。
※ 本 SQL は ZendFramework-1.11.3 内のコードから部分的に抜粋したものです。
[ Oracle ] q 演算子 シングルクォーテーションを文字として扱う
SQL で文字列を扱う場合は、シングルクォーテーション ( ‘ ) で囲む必要がありますが、シングルクォーテーション自体を文字として扱いたい場合には ( ” ) とシングルクォーテーションを2つ連続で記述しなければいけません。また、Oracle 10g から代替引用符 q 演算子を使用することでも同等のことができるようになりました。ここではこれらのサンプル SQL を掲載しています。
[ Oracle SQL ] 文字列の前後のスペースの除去と挿入 ( Trim, Padding )
多くのプログラム言語では文字列の前後のスペースを除去するための trim 関数が用意されていますが、 Oracle にも trim 関数が用意されています。また、文字列の前後にスペースや 0 などをパディングして桁数を揃える lpad, rpad 関数も用意されています。ここでは、それらの使用例を掲載しています。
[ Oracle ] SQL の null 判定は等号(=)、不等号(<>)ではなく is null, is not null
ここでは、Oracle における SQL の null 判定についての確認を行っています。以下のテーブルを作成して、NULL_VALUE 列が null の行と、そうではない行を挿入して select の null 検索を検証してみます。