- PostgreSQL 教程
- PostgreSQL - 首頁
- PostgreSQL - 概述
- PostgreSQL - 環境設定
- PostgreSQL - 語法
- PostgreSQL - 資料型別
- PostgreSQL - 建立資料庫
- PostgreSQL - 選擇資料庫
- PostgreSQL - 刪除資料庫
- PostgreSQL - 建立表
- PostgreSQL - 刪除表
- PostgreSQL - 模式
- PostgreSQL - 插入查詢
- PostgreSQL - 選擇查詢
- PostgreSQL - 運算子
- PostgreSQL - 表示式
- PostgreSQL - WHERE 子句
- PostgreSQL - AND & OR 子句
- PostgreSQL - 更新查詢
- PostgreSQL - 刪除查詢
- PostgreSQL - LIKE 子句
- PostgreSQL - LIMIT 子句
- PostgreSQL - ORDER BY 子句
- PostgreSQL - GROUP BY
- PostgreSQL - WITH 子句
- PostgreSQL - HAVING 子句
- PostgreSQL - DISTINCT 關鍵字
- 高階 PostgreSQL
- PostgreSQL - 約束
- PostgreSQL - 連線
- PostgreSQL - UNION 子句
- PostgreSQL - NULL 值
- PostgreSQL - 別名語法
- PostgreSQL - 觸發器
- PostgreSQL - 索引
- PostgreSQL - ALTER TABLE 命令
- TRUNCATE TABLE 命令
- PostgreSQL - 檢視
- PostgreSQL - 事務
- PostgreSQL - 鎖
- PostgreSQL - 子查詢
- PostgreSQL - 自動遞增
- PostgreSQL - 許可權
- 日期/時間函式 & 運算子
- PostgreSQL - 函式
- PostgreSQL - 常用函式
- PostgreSQL 介面
- PostgreSQL - C/C++
- PostgreSQL - Java
- PostgreSQL - PHP
- PostgreSQL - Perl
- PostgreSQL - Python
- PostgreSQL 常用資源
- PostgreSQL - 快速指南
- PostgreSQL - 常用資源
- PostgreSQL - 討論
PostgreSQL - 數值函式
PostgreSQL 數值函式主要用於數值操作和/或數學計算。下表詳細列出了數值函式:
| 序號 | 名稱及描述 |
|---|---|
| 1 | ABS()
返回數值表示式的絕對值。 |
| 2 | ACOS()
返回數值表示式的反餘弦值。如果值不在 -1 到 1 的範圍內,則返回 NULL。 |
| 3 | ASIN()
返回數值表示式的反正弦值。如果值不在 -1 到 1 的範圍內,則返回 NULL。 |
| 4 | ATAN()
返回數值表示式的反正切值。 |
| 5 | ATAN2()
返回傳遞給它的兩個變數的反正切值。 |
| 6 | CEIL()
返回不大於傳遞的數值表示式的最小整數值。 |
| 7 | CEILING()
返回不大於傳遞的數值表示式的最小整數值。 |
| 8 | COS()
返回傳遞的數值表示式的餘弦值。數值表示式應以弧度表示。 |
| 9 | COT()
返回傳遞的數值表示式的餘切值。 |
| 10 | DEGREES()
返回從弧度轉換為角度的數值表示式。 |
| 11 | EXP()
返回自然對數的底數 (e) 乘以傳遞的數值表示式的冪。 |
| 12 | FLOOR()
返回不大於傳遞的數值表示式的最大整數值。 |
| 13 | GREATEST()
返回輸入表示式中的最大值。 |
| 14 | LEAST()
當給出兩個或更多值時,返回最小值輸入。 |
| 15 | LOG()
返回傳遞的數值表示式的自然對數。 |
| 16 | MOD()
返回一個表示式除以另一個表示式的餘數。 |
| 17 | PI()
返回 π 的值。 |
| 18 | POW()
返回一個表示式乘以另一個表示式的冪的值。 |
| 19 | POWER()
返回一個表示式乘以另一個表示式的冪的值。 |
| 20 | RADIANS()
返回從角度轉換為弧度的傳遞表示式的值。 |
| 21 | ROUND()
返回四捨五入到整數的數值表示式。可用於將表示式四捨五入到小數位數。 |
| 22 | SIN()
返回以弧度表示的數值表示式的正弦值。 |
| 23 | SQRT()
返回數值表示式的非負平方根。 |
| 24 | TAN()
返回以弧度表示的數值表示式的正切值。 |
ABS(X)
ABS() 函式返回 X 的絕對值。請考慮以下示例:
testdb=# SELECT ABS(2); +---------------------------------------------------------+ | ABS(2) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=# SELECT ABS(-2); +---------------------------------------------------------+ | ABS(2) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
ACOS(X)
此函式返回 X 的反餘弦值。X 的值必須介於 -1 和 1 之間,否則將返回 NULL。請考慮以下示例:
testdb=# SELECT ACOS(1); +---------------------------------------------------------+ | ACOS(1) | +---------------------------------------------------------+ | 0.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
ASIN(X)
ASIN() 函式返回 X 的反正弦值。X 的值必須在 -1 到 1 的範圍內,否則返回 NULL。
testdb=# SELECT ASIN(1); +---------------------------------------------------------+ | ASIN(1) | +---------------------------------------------------------+ | 1.5707963267949 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
ATAN(X)
此函式返回 X 的反正切值。
testdb=# SELECT ATAN(1); +---------------------------------------------------------+ | ATAN(1) | +---------------------------------------------------------+ | 0.78539816339745 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
ATAN2(Y,X)
此函式返回兩個引數 X 和 Y 的反正切值。它類似於 Y/X 的反正切值,只是使用了兩個引數的符號來查詢結果的象限。
testdb=# SELECT ATAN2(3,6); +---------------------------------------------------------+ | ATAN2(3,6) | +---------------------------------------------------------+ | 0.46364760900081 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
CEIL(X) / CEILING(X)
這些函式返回不小於 X 的最小整數值。請考慮以下示例:
testdb=# SELECT CEILING(3.46); +---------------------------------------------------------+ | CEILING(3.46) | +---------------------------------------------------------+ | 4 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=# SELECT CEIL(-6.43); +---------------------------------------------------------+ | CEIL(-6.43) | +---------------------------------------------------------+ | -6 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
COS(X)
此函式返回 X 的餘弦值。X 的值以弧度表示。
testdb=#SELECT COS(90); +---------------------------------------------------------+ | COS(90) | +---------------------------------------------------------+ | -0.44807361612917 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
COT(X)
此函式返回 X 的餘切值。請考慮以下示例:
testdb=#SELECT COT(1); +---------------------------------------------------------+ | COT(1) | +---------------------------------------------------------+ | 0.64209261593433 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
DEGREES(X)
此函式返回從弧度轉換為角度的 X 值。
testdb=#SELECT DEGREES(PI()); +---------------------------------------------------------+ | DEGREES(PI()) | +---------------------------------------------------------+ | 180.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
EXP(X)
此函式返回 e(自然對數的底數)的 X 次冪的值。
testdb=#SELECT EXP(3); +---------------------------------------------------------+ | EXP(3) | +---------------------------------------------------------+ | 20.085537 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
FLOOR(X)
此函式返回不大於 X 的最大整數值。
testdb=#SELECT FLOOR(7.55); +---------------------------------------------------------+ | FLOOR(7.55) | +---------------------------------------------------------+ | 7 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
GREATEST(n1,n2,n3,..........)
GREATEST() 函式返回一組輸入引數 (n1、n2、n3 等) 中的最大值。以下示例使用 GREATEST() 函式從一組數值中返回最大數:
testdb=#SELECT GREATEST(3,5,1,8,33,99,34,55,67,43); +---------------------------------------------------------+ | GREATEST(3,5,1,8,33,99,34,55,67,43) | +---------------------------------------------------------+ | 99 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
LEAST(N1,N2,N3,N4,......)
LEAST() 函式與 GREATEST() 函式相反。它的目的是從值列表 (N1、N2、N3 等) 中返回最小值項。以下示例顯示了 LEAST() 函式的正確用法和輸出:
testdb=#SELECT LEAST(3,5,1,8,33,99,34,55,67,43); +---------------------------------------------------------+ | LEAST(3,5,1,8,33,99,34,55,67,43) | +---------------------------------------------------------+ | 1 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
LOG(X) / LOG(B,X)
函式的單引數版本將返回 X 的自然對數。如果用兩個引數呼叫它,它將返回任意底數 B 的 X 的對數。請考慮以下示例:
testdb=#SELECT LOG(45); +---------------------------------------------------------+ | LOG(45) | +---------------------------------------------------------+ | 1.65321251377534 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=#SELECT LOG(2,65536); +---------------------------------------------------------+ | LOG(2,65536) | +---------------------------------------------------------+ | 16.000000 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
MOD(N,M)
此函式返回 N 除以 M 的餘數。請考慮以下示例:
testdb=#SELECT MOD(29,3); +---------------------------------------------------------+ | MOD(29,3) | +---------------------------------------------------------+ | 2 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
PI()
此函式只返回 π 的值。SQL 內部儲存 π 的完整雙精度值。
testdb=#SELECT PI(); +---------------------------------------------------------+ | PI() | +---------------------------------------------------------+ | 3.141593 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
POW(X,Y) / POWER(X,Y)
這兩個函式返回 X 的 Y 次冪的值。
testdb=# SELECT POWER(3,3); +---------------------------------------------------------+ | POWER(3,3) | +---------------------------------------------------------+ | 27 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
RADIANS(X)
此函式返回 X 的值,從角度轉換為弧度。
testdb=#SELECT RADIANS(90); +---------------------------------------------------------+ | RADIANS(90) | +---------------------------------------------------------+ |1.570796 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
ROUND(X) / ROUND(X,D)
此函式返回四捨五入到最接近整數的 X。如果提供第二個引數 D,則函式返回四捨五入到 D 位小數的 X。D 必須為正數,否則小數點右側的所有數字都將被刪除。請考慮以下示例:
testdb=#SELECT ROUND(5.693893); +---------------------------------------------------------+ | ROUND(5.693893) | +---------------------------------------------------------+ | 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=#SELECT ROUND(5.693893,2); +---------------------------------------------------------+ | ROUND(5.693893,2) | +---------------------------------------------------------+ | 5.69 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
SIGN(X)
此函式返回 X 的符號(負數、零或正數)作為 -1、0 或 1。
testdb=#SELECT SIGN(-4.65); +---------------------------------------------------------+ | SIGN(-4.65) | +---------------------------------------------------------+ | -1 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=#SELECT SIGN(0); +---------------------------------------------------------+ | SIGN(0) | +---------------------------------------------------------+ | 0 | +---------------------------------------------------------+ 1 row in set (0.00 sec) testdb=#SELECT SIGN(4.65); +---------------------------------------------------------+ | SIGN(4.65) | +---------------------------------------------------------+ | 1 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
SIN(X)
此函式返回 X 的正弦值。請考慮以下示例:
testdb=#SELECT SIN(90); +---------------------------------------------------------+ | SIN(90) | +---------------------------------------------------------+ | 0.893997 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
SQRT(X)
此函式返回 X 的非負平方根。請考慮以下示例:
testdb=#SELECT SQRT(49); +---------------------------------------------------------+ | SQRT(49) | +---------------------------------------------------------+ | 7 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
TAN(X)
此函式返回引數 X 的正切值,該引數以弧度表示。
testdb=#SELECT TAN(45); +---------------------------------------------------------+ | TAN(45) | +---------------------------------------------------------+ | 1.619775 | +---------------------------------------------------------+ 1 row in set (0.00 sec)