mysql>
select
SQRT(16)
+----------+
|
SQRT(16)
|
+----------+
|
4.000000
|
+----------+
1
row
in
set
(0.00
sec)
所看到的浮点值,因为内部MySQL将处理浮点数据类型的平方根。
可以使用SQRT函数,计算出记录的平方根。了解SQRT函数更详细用法,考虑EMPLOYEE_TBL的表具有以下记录:
mysql>
SELECT
*
FROM
employee_tbl
+------+------+------------+--------------------+
|
id
|
name
|
work_date
|
daily_typing_pages
|
+------+------+------------+--------------------+
|
1
|
John
|
2007-01-24
|
250
|
|
2
|
Ram
|
2007-05-27
|
220
|
|
3
|
Jack
|
2007-05-06
|
170
|
|
3
|
Jack
|
2007-04-06
|
100
|
|
4
|
Jill
|
2007-04-06
|
220
|
|
5
|
Zara
|
2007-06-06
|
300
|
|
5
|
Zara
|
2007-02-06
|
350
|
+------+------+------------+--------------------+
7
rows
in
set
(0.00
sec)
假设根据上面的表格,要计算所有的dialy_typing_pages的平方根,然后可以通过使用下面的命令:
mysql>
SELECT
name,
SQRT(daily_typing_pages)
->
FROM
employee_tbl
+------+--------------------------+
|
name
|
SQRT(daily_typing_pages)
|
+------+--------------------------+
|
John
|
15.811388
|
|
Ram
|
14.832397
|
|
Jack
|
13.038405
|
|
Jack
|
10.000000
|
|
Jill
|
14.832397
|
|
Zara
|
17.320508
|
|
Zara
|
18.708287
|
+------+--------------------------+
7
rows
in
set
(0.00
sec)
-- 导出 函数 xxx.PRO_GETNUM 结构DELIMITER //
CREATE DEFINER=`xxx`@`%` FUNCTION `PRO_GETNUM`(`param1` INT) RETURNS varchar(5000) CHARSET utf8mb4
BEGIN
declare reInt int(11) default 0
declare reStr varchar(5000) default ''
declare i int(11) default 1
while reInt<=param1 do
if(i!=1) then
set reStr = concat(reStr,reInt,',')
end if
set reInt = i*i
/*select reInt*/
set i = i+1
end while
if length(reStr)>1 then
set reStr = substr(reStr,1,length(reStr)-1)/*去掉最后一个逗号*/
end if
return reStr
END//
DELIMITER
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)