式の構造
式は、列名、リテラル、演算子、および関数の任意の組み合わせで構成されます。
要素を組み合わせて式を作成するときには、次のガイドラインに従ってください。
名前を入力して列を参照します。クエリで複数のテーブルを使用しているときに、一意でない列名が含まれる場合は、列名にテーブル名とピリオドを追加する必要があります。次の例では、列名 job_id をテーブル名 employee で修飾しています。
employee.job_id
リテラル文字列を含めるときは単一引用符で囲みます。数値の場合は引用符は不要です。
[!メモ]
一部のデータベースでは、単一引用符で囲まれた項目がリテラル値として解釈され、二重引用符で囲まれた項目が列やテーブル参照などのデータベース オブジェクトとして解釈されます。このため、クエリおよびデザイナーでは二重引用符で囲まれた項目も受け入れることができますが、その項目が期待どおりに解釈されるとは限りません。SQL Server の場合、クエリおよびビュー デザイナーは二重引用符を常にデータベース オブジェクトの区切り記号として解釈します。
数値には標準の算術演算子を使用し、文字列の結合には連結演算子を使用します。
かっこを使用して演算子の優先順位を明確にします。
関数を含める場合は、関数に渡す引数に対しても同じガイドラインを適用します。つまり、名前を入力して列を参照し、リテラル文字列は単一引用符で囲むなどです。
関数の引数として列名を渡す場合は、列のデータ型がその引数に対して適切であることを確認してください。
スカラー値を返すユーザー定義関数を式に含めることができます。
次の表に、クエリでの式の使用法を示します。
式 * |
結果 |
---|---|
SELECT (price * .9)FROM products |
割り引き価格 (price 列の値の 10% 引き) を表示します。 |
SELECT sales.qty, titles.price FROM sales INNER JOIN titles ON sales.title_id = titles.title_id ORDER BY (sales.qty * titles.price) |
2 つのテーブルを結合し、注文の合計値 (数量×価格) で結果セットを並べ替えます。 |
SELECT au_lname, au_fname FROM authors WHERE (SUBSTRING(phone, 1, 3) = '415') |
市外局番がサンフランシスコ地域である著者を表示します。 |
SELECT ord_num, ord_date FROM sales WHERE (ord_date >= DATEADD(day, -10, GETDATE())) |
sales テーブル内で最近 10 日間に発生した注文をすべて検索します。GETDATE( ) 関数で今日の日付が返されます。 |
* ここに示した演算子および関数のいくつかは、特定のデータベースに固有のものです。使用できる演算子と関数の詳細については、データベースのドキュメントを参照してください。