SQL - SQRT() 函数



SQL 的SQRT()函数返回正数的平方根。它接受非负数作为参数。例如,如果数字是 25,则此函数返回 5。

假设表中有多个列,我们想要获取特定列的平方根,该列只接受数值。我们无法手动查找每个条目的平方根。因此,我们可以使用 SQRT() 函数并将列名传递给它,以获取每个条目的平方根。

语法

以下是 SQRT() 函数的语法:

SELECT SQRT(X) AS Alias_Name;

其中 x 是参数,必须始终为正。

以下是 SQL 表中使用 SQRT 函数的语法:

SELECT SQRT(Integer_column_name) AS Alias_Name FROM table_name;

我们可以使用上述语法(它接受接受正值的列名)来执行 SQRT 函数以查找平方根值。

示例

在下面的示例中,我们使用 SQRT() 函数获取 144 的平方根。

以下是查询:

SELECT SQRT(144) AS squareRoot;

输出

执行上述 SQL 查询后,我们得到以下输出:

+------------+
| squareRoot |
+------------+
|         12 |
+------------+

示例

在下面的示例中,我们将数字作为字符串传递,以使用 SQRT() 函数计算指定字符串的平方根。

以下是查询:

SELECT SQRT('400') AS squareRoot;

输出

执行上述 SQL 查询后,我们将得到给定数字(作为字符串)的平方根:

+------------+
| squareRoot |
+------------+
|         20 |
+------------+

示例

在下面的示例中,我们使用负值来获取负值的平方根。

以下是查询:

SELECT SQRT(-400) AS squareRoot;

验证

当我们执行上述 SQL 查询时,我们会得到以下错误,因为 SQRT 在 SQL 中不接受负值。但在 MySQL 中它会显示 NULL 值。

An invalid floating point operation occurred.

示例

在下面的示例中,我们从客户表中获取 ID 和名称,并计算工资的平方根。

让我们使用 CREATE 语句创建一个名为 customers 的表:

CREATE TABLE customers(ID INT NOT NULL PRIMARY KEY(ID), 
NAME VARCHAR(30) NOT NULL, 
AGE INT NOT NULL, ADDRESS CHAR(30), 
SALARY DECIMAL(18, 2));

让我们使用 INSERT 语句将数据插入 CUSTOMERS 表:

insert INTO customers VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000);
insert INTO customers VALUES(2, 'Aman' 23, 'Ranchi', 40000);
insert INTO customers VALUES(3, 'kaushik', 23, 'Kota', 2000);
insert INTO customers VALUES(4, 'Chaitali', 25, 'Mumbai', 6500);
insert INTO customers VALUES(5, 'Rakesh', 24, 'Kota', 30000);
insert INTO customers VALUES(6, 'Vivek', 22, 'Ranchi', 35000);
insert INTO customers VALUES(7, 'Akash', 22, 'Ranchi', 50000);

以下是 customers 表:

+------+----------+------+-----------+--------+
| ID   | NAME     | AGE  | ADDRESS   | SALARY |
+------+----------+------+-----------+--------+
|    1 | Ramesh   |   32 | Ahmedabad |   2000 |
|    2 | Aman     |   23 | Ranchi    |  40000 |
|    3 | kaushik  |   23 | Kota      |   2000 |
|    4 | chsitali |   25 | Mumbai    |   6500 |
|    5 | Rakesh   |   24 | kota      |  30000 |
|    6 | Vivek    |   22 | Ranchi    |  35000 |
|    7 | Akash    |   22 | Ranchi    |  50000 |
+------+----------+------+-----------+--------+

以下是 SQL SQRT() 函数查询:

SELECT ID, NAME, SQRT(SALARY) FROM customers;

输出

执行上述 SQL 查询后,我们将获得 ID、NAME 和工资的平方根:

+------+----------+--------------------+
| ID   | NAME     | SQRT(SALARY)       |
+------+----------+--------------------+
|    1 | Ramesh   | 44.721359549995796 |
|    2 | Aman     |                200 |
|    3 | kaushik  | 44.721359549995796 |
|    4 | Chaitali |  80.62257748298549 |
|    5 | Rakesh   | 173.20508075688772 |
|    6 | Vivek    | 187.08286933869707 |
|    7 | Akash    | 223.60679774997897 |
+------+----------+--------------------+
sql-numeric-functions.htm
广告