6.計算字段 ---SQL
提示:客戶端與服務器的格式
在SQL語句內可完成的許多轉換和格式化工作都可以直接在客戶端應用程序內完成。但一般來說,在數據庫服務器上完成這些操作比在客戶
端中完成要快得多。
一、拼接字段
拼接(concatenate)
將值聯結到一起(將一個值附加到另一個值)構成單個值。
解決辦法是把兩個列拼接起來。在SQL中的SELECT語句中,可使用一個特殊的操作符來拼接兩個列。根據你所使用的DBMS,此操作符可用加
號(+)或兩個豎杠(||)表示。在MySQL和MariaDB中,必須使用特殊的函數。
說明:是+還是||?
Access和SQL Server使用+號。DB2、Oracle、PostgreSQL、SQLite和Open Office Base使用||
SELECT RTRIM(vend_name) + ‘ (‘ + RTRIM(vend_country) + ‘)‘ FROM Vendors ORDER BY vend_name;
輸出▼ ----------------------------------------------------------- Bear Emporium (USA) Bears R Us (USA) Doll House Inc. (USA) Fun and Games (England) Furball Inc. (USA) Jouets et ours (France)
分析▼
RTRIM()函數去掉值右邊的所有空格。通過使用RTRIM(),各個列都進行了整理。
說明:TRIM函數
大多數DBMS都支持RTRIM()(正如剛才所見,它去掉字符串右邊的空格)、LTRIM()(去掉字符串左邊的空格)以及TRIM()(去掉字符串
左右兩邊的空格)。
二、使用別名
別名(alias)是一個字段或值的替換名。別名用A S關鍵字賦予
SELECT RTRIM(vend_name) + ‘ (‘ + RTRIM(vend_country) + ‘)‘ AS vend_title FROM Vendors ORDER BY vend_name;
輸出▼ vend_title----------------------------------------------------------- Bear Emporium (USA) Bears R Us (USA) Doll House Inc. (USA) Fun and Games (England) Furball Inc. (USA) Jouets et ours (France)
分析▼
SELECT語句本身與以前使用的相同,只不過這裏的計算字段之後跟了文本A S vend_title。它指示SQL創建一個包含指定計算結果的名
為vend_title的計算字段。從輸出可以看到,結果與以前的相同,但現在列名為vend_title,任何客戶端應用都可以按名稱引用這個列,就像它
是一個實際的表列一樣。
說明:AS通常可選
在很多DBMS中,AS關鍵字是可選的,不過最好使用它,這被視為一條最佳實踐。
提示:別名的其他用途
別名還有其他用途。常見的用途包括在實際的表列名包含不合法的字符(如空格)時重新命名它,在原來的名字含混或容易誤解時擴充它。
警告:別名
別名既可以是一個單詞也可以是一個字符串。如果是後者,字符串應該括在引號中。雖然這種做法是合法的,但不建議這麽去做。多單詞的
名字可讀性高,不過會給客戶端應用帶來各種問題。因此,別名最常見的使用是將多個單詞的列名重命名為一個單詞的名字。
說明:導出列
別名有時也稱為導出列(derived column),不管怎麽叫,它們所代表的是相同的東西。
三、執行算術計算
SELECT prod_id, quantity, item_price, quantity*item_price AS expanded_price FROM OrderItems WHERE order_num = 20008;
輸出▼ prod_id quantity item_price expanded_price ---------- ----------- ------------ ----------------- RGAN01 5 4.9900 24.9500 BR03 5 11.9900 59.9500 BNBG01 10 3.4900 34.9000 BNBG02 10 3.4900 34.9000 BNBG03 10 3.4900 34.9000
分析▼
輸出中顯示的expanded_price列是一個計算字段,此計算為quantity*item_price。客戶端應用現在可以使用這個新計算列,就像使用其他列一
樣。
SQL支持表7-1中列出的基本算術操作符。此外,圓括號可用來區分優先順序。
四、SQL算術操作符
6.計算字段 ---SQL