首先创建需要用到的数据表:
CREATE TABLE T_Person (FIdNumber VARCHAR(20),
FName VARCHAR(20),FBirthDay DATETIME,
FRegDay DATETIME,FWeight DECIMAL(10,2))

预置初始数据:
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789120′,’Tom’,’1981-03-22′,’1998-05-01′,56.67);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789121′,’Jim’,’1987-01-18′,’1999-08-21′,36.17);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789122′,’Lily’,’1987-11-08′,’2001-09-18′,40.33);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789123′,’Kelly’,’1982-07-12′,’2000-03-01′,46.23);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789124′,’Sam’,’1983-02-16′,’1998-05-01′,48.68);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789125′,’Kerry’,’1984-08-07′,’1999-03-01′,66.67);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789126′,’Smith’,’1980-01-09′,’2002-09-23′,51.28);
INSERT INTO T_Person(FIdNumber,FName,FBirthDay,FRegDay,FWeight)
VALUES (‘123456789127′,’BillGates’,’1972-07-18′,’1995-06-19′,60.32);

一、求绝对值 ABS()
该函数接受一个参数,这个参数为待求绝对值的表达式:
SELECT FWeight – 50,ABS(FWeight – 50) , ABS(-5.38) FROM T_Person

二、求指数 POWER()
该函数接受两个参数,第一个参数为待求幂的表达式,第二个参数为幂:
SELECT FWeight,POWER(FWeight,-0.5),POWER(FWeight,2),
POWER(FWeight,3),POWER(FWeight,4) FROM T_Person

三、求平方根 SQRT()
该函数接受一个参数,这个参数为待计算平方根的表达式:
SELECT FWeight,SQRT(FWeight) FROM T_Person

四、求随机数 RAND()
MYSQL、MSSQLServer 中提供了 RAND() 函数用来生成随机算法:
SELECT RAND()
RAND() 函数还支持一个参数,这个参数为随机数种子,如:
SELECT RAND(9527)

五、舍入到最大整数 CEILING()
在 MYSQL、MSSQLServer 和 DB2 中提供了名为 CEILING() 的函数(在英语中 CEILING 可以理解为 “天花板”),
这个函数用来舍掉一个数的小数点后的部分,并且向上舍入到邻近的最大的整数(即:向上取整)。
如 3.33 将被舍入为 4、
2.89 将被舍入为 3、
-3.61 将被舍入为-3。
这个函数有一个参数,参数为待舍入的数值:
SELECT FName,FWeight, CEILING(FWeight), CEILING(FWeight*-1)
FROM T_Person

六、舍入到最小整数 FLOOR()
SQL 中提供了 FLOOR() 函数,和 CEILING() 函数正好相反(在英语中FLOOR 可以理解为“地板”),
FLOOR()函数用来舍掉一个数的小数点后的部分,并且向下舍入到邻近的最小的整数(即:向下取整)。
如 3.33 被舍入为 3、
2.89 被舍入为 2、
-3.61 将被舍入为 -4。
这个函数有一个参数,参数为待舍入的数值:
SELECT FName,FWeight,FLOOR(FWeight),FLOOR(FWeight*-1)
FROM T_Person

七、四舍五入 ROUND()
ROUND() 函数用来进行数值四舍五入,ROUND() 函数将数值向最近的数值舍入(在英语中ROUND可以理解为“半径”),
ROUND()函数有两个参数和单一参数两种用法。
1、两个参数
两个参数的 ROUND() 函数用法为:ROUND(m,d),
其中m为待进行四舍五入的数值,d 为计算精度,也就是进行四舍五入时保留的小数位数,如:
3.663 进行精度为2 的四舍五入得到3.66、
-2.337 进行精度为2 的四舍五入得到-2.34、
3.32122进行精度为3 的四舍五入得到3.321。
当d为0 的时候则表示不保留小数位进行四舍五入,如:
3.663进行精度为 0 的四舍五入得到 4、
-2.337进行精度为 0 的四舍五入得到 -2、
3.32122进行精度为 0 的四舍五入得到 3。
d 还可以取负值,这时表示在整数部分进行四舍五入,如:
36.63 进行精度为 -1 的四舍五入得到 40、
233.7 进行精度为 -2 的四舍五入得到 200、
3321.22 进行精度为 -2的四舍五入得到 3300。
SQL语句如下:
SELECT FName,FWeight, ROUND(FWeight,1),
ROUND(FWeight*-1,0) , ROUND(FWeight,-1)
FROM T_Person;
2、单一参数
单一参数的 ROUND() 函数用法为:ROUND(m),其中 m 为待进行四舍五入的数值,
可以看做精度为 0 的四舍五入运算,即 ROUND(m,0)。
SELECT FName,FWeight, ROUND(FWeight), ROUND(FWeight*-1)
FROM T_Person
注:单一函数的用法在 MSSQLServer 上以及 DB2 上不被支持,必须显示的指明精度为 0。

八、求正弦值 SIN()
接受一个参数,这个参数为待计算正弦值的表达式:
SELECT FName,FWeight,SIN(FWeight) FROM T_Person

九、求余弦值 COS()
接受一个参数,这个参数为待计算余弦值的表达式:
SELECT FName,FWeight, COS(FWeight) FROM T_Person

十、求反正弦值 ASIN()
接受一个参数,这个参数为待计算反正弦值的表达式:
SELECT FName,FWeight, ASIN(1/FWeight) FROM T_Person

十一、求反余弦值 ACOS()
接受一个参数,这个参数为待计算反余弦值的表达式:
SELECT FName,FWeight, ACOS(1/FWeight) FROM T_Person

十二、求正切值 TAN()
接受一个参数,这个参数为待计算正切值的表达式:
SELECT FName,FWeight, TAN(FWeight) FROM T_Person

十三、求反正切值 ATAN()
接受一个参数,这个参数为待计算反正切值的表达式:
SELECT FName,FWeight, ATAN(FWeight) FROM T_Person

十四、求余切 COT()
接受一个参数,这个参数为待计算余切值的表达式:
SELECT FName,FWeight, COT(FWeight) FROM T_Person

十五、求圆周率π值 PI()
这个函数不需要使用参数:
SELECT FName,FWeight,FWeight *PI() FROM T_Person

十六、弧度制转换为角度制 DEGREES ()
接受一个参数,这个参数为待转换的表达式:
SELECT FName,FWeight, DEGREES(FWeight) FROM T_Person

十七、角度制转换为弧度制 RADIANS ()
接受一个参数,这个参数为待转换的表达式:
SELECT FName,FWeight, RADIANS(FWeight) FROM T_Person

十八、求符号 SIGN()
如果数值大于 0 则返回 1,
如果数值等于 0 则返回 0,
如果数值小于 0 则返回-1。
该函数接受一个参数,这个参数为待求绝对值的表达式:
SELECT FName,FWeight-48.68,SIGN(FWeight-48.68) FROM T_Person

十九、求整除余数 MOD()
该函数接受两个参数,第一个参数为除数,而第二个参数则是被除数。
MYSQL 和 Oracle 中提供了对 MOD() 函数的直接支持;
MSSQLServer 不支持 MOD(),当提供了操作符 “%” 用来计算两个数的整除余数;
DB2中不支持求整除余数操作。
MYSQL,Oracle:
SELECT FName,FWeight,MOD(FWeight , 5) FROM T_Person
MSSQLServer:
SELECT FName,FWeight,FWeight % 5 FROM T_Person

二十、求自然对数 LOG ()
该函数接受一个参数,此参数为待计算自然对数的表达式,在Oracle中这个函数的名称为 LN()。
MYSQL,MSSQLServer,DB2:
SELECT FName,FWeight, LOG(FWeight) FROM T_Person
Oracle:
SELECT FName,FWeight, LN(FWeight) FROM T_Person

二十一、求以 10 为底的对数 LOG10()
该函数接受一个参数,此参数为待计算对数的表达式。
Oracle 不支持这个函数,但 Oracle 有一个可以计算任意数为底的对数的函数 LOG(m,n) 用来计算以 m 为底 n 的对数。
MYSQL,MSSQLServer,DB2:
SELECT FName,FWeight, LOG10(FWeight) FROM T_Person
Oracle:
SELECT FName,FWeight,LOG(10,FWeight) FROM T_Person

二十二、求幂 POWER(X,Y)
用来计算X 的Y 次幂:
SELECT FName,FWeight, POWER(1.18,FWeight) FROM T_Person

更多相关文章

  1. MSSQL中类似MySQL的limit参数
  2. 求助,关于sql带入参数的写法问题。
  3. 参数化的Insert语句,事务抛出错误
  4. SQL Server 2008使用sproc中的函数
  5. 即使提供了参数,过程也需要参数
  6. MYSQL存储过程,函数,光标
  7. 请问mysql中有没有类似math.max(1,2)这种可以比较两个值中最大值
  8. SQL 函数如何设置参数默认值
  9. 使用不同的条件,在同一个表的一个SQL查询中使用多个聚合函数

随机推荐

  1. Android可拖动的ImageView
  2. Android实现主动连接蓝牙耳机
  3. Android改变Spinner弹出框的位置
  4. android的service
  5. Android自动化测试之MonkeyRunner之Monke
  6. [Android][HTC]HTC Android Reboot Comma
  7. 在 Android Emulator 中开发 LKM 程序
  8. Android uses-permission权限
  9. android实现进度条ProgressDialog
  10. android gridview setOnItemClickListene