SELECT リストの式は、カラム名や文字列だけではなく、より複雑にできます。たとえば、SELECT リストの数値カラムのデータを使用して計算を行うことができます。
SELECT リストで実行できる数値演算を説明するには、まず SQL Anywhere サンプルデータベース内の製品の名前、在庫数、単価をリストすることから始めます。
SELECT Name, Quantity, UnitPrice FROM Products; |
Name | Quantity | UnitPrice |
---|---|---|
Tee Shirt | 28 | 9 |
Tee Shirt | 54 | 14 |
Tee Shirt | 75 | 14 |
Baseball Cap | 112 | 9 |
... | ... | ... |
どの製品も在庫数が 10 になったときに在庫を補充するとします。次のクエリは、各製品をあといくつ売ったら再発注するかをリストします。
SELECT Name, Quantity - 10 AS "Sell before reorder" FROM Products; |
Name | Sell before reorder |
---|---|
Tee Shirt | 18 |
Tee Shirt | 44 |
Tee Shirt | 65 |
Baseball Cap | 102 |
... | ... |
カラムの値を組み合わせることもできます。次のクエリは、在庫中の各製品の総額をリストします。
SELECT Name, Quantity * UnitPrice AS "Inventory value" FROM Products; |
Name | Inventory value |
---|---|
Tee Shirt | 252.00 |
Tee Shirt | 756.00 |
Tee Shirt | 1050.00 |
Baseball Cap | 1008.00 |
... | ... |
1 つの式に算術演算子が 2 つ以上ある場合は、乗法、除法、剰余をまず計算し、その後で減法と加法を計算します。1 つの式のすべての算術演算子の優先度が同じ場合、計算は左から右に順番に行われます。カッコに入っている式は、他のすべての計算より優先されます。
たとえば、次の SELECT 文は、在庫中の各製品の総額を計算し、次にその値から 5 ドル引きます。
SELECT Name, Quantity * UnitPrice - 5 FROM Products; |
確実に正しい結果を得るためには、可能な限りカッコを使用します。次のクエリは前述のクエリと同じ意味で、同じ結果を生成しますが、構文の精度が高くなります。
SELECT Name, ( Quantity * UnitPrice ) - 5 FROM Products; |
算術演算は、演算の結果をそのデータ型で表現できないことによってオーバーフローする場合があります。オーバーフローが発生すると、値の代わりにエラーが返されます。
文字列連結演算子を使用して文字列を連結できます。「||」(SQL/2008 で定義されている) または「+」(Adaptive Server Enterprise でサポート) を連結演算子として使用します。たとえば、次の文では、結果の Surname と GivenName の値を取り出して、連結しています。
SELECT EmployeeID, GivenName || ' ' || Surname AS Name FROM Employees; |
EmployeeID | Name |
---|---|
102 | Fran Whitney |
105 | Matthew Cobb |
129 | Philip Chin |
148 | Julie Jordan |
... | ... |
日付カラムと時刻カラムでも演算子を使用できますが、そのためには一般的に関数を使用することになります。
カラムのエイリアスを指定できる デフォルトでは、カラム名は SELECT リストにリストされる式ですが、計算カラムの場合、式では煩雑でわかりにくくなります。
その他の演算子を使用できる 乗算演算子はカラムを結合するために使用できます。標準的な算術演算子、論理演算子、文字列演算子など、その他の演算子も使用できます。
たとえば、次のクエリは、すべての顧客のフルネームをリストします。
SELECT ID, (GivenName || ' ' || Surname ) AS "Full name" FROM Customers; |
||
演算子は文字列を連結しています。このクエリの場合、カラムのエイリアスにはスペースが付いているので、二重引用符で囲みます。この規則は、カラムのエイリアスだけでなく、データベース内のテーブル名やその他の識別子にも適用されます。
関数を使用できる カラムを結合するだけでなく、さまざまな組み込み関数を使用して、必要な結果を得ることができます。
たとえば、次のクエリは製品名を大文字でリストします。
SELECT ID, UCASE( Name ) FROM Products; |
ID | UCASE(Products.name) |
---|---|
300 | TEE SHIRT |
301 | TEE SHIRT |
302 | TEE SHIRT |
400 | BASEBALL CAP |
... | ... |
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |