SQLite LOG() 函数返回以 10 为底的对数或给定数字的指定底数的对数。在特殊情况下,它返回以下内容:
- 如果数字小于或等于0,则返回NULL。
- 如果base小于或等于1,则返回NULL。
语法
/* 以 10 为底的数字对数 */
LOG(number)
/* 数字到指定底数的对数 */
LOG(base, number)
参数
base | 指定底数。必须大于 0 且不等于 1。 |
number | 必填。 指定数字。必须大于 0。 |
返回值
返回给定数字的以 10 为底的对数或指定底数的对数.
示例 1:
下面的示例展示了 LOG() 函数的用法。
SELECT LOG(1);
Result: 0.0
SELECT LOG(1.5);
Result: 0.176091259055681
SELECT LOG(5);
Result: 0.698970004336019
SELECT LOG(0);
Result: NULL
SELECT LOG(3, 4);
Result: 1.26185950714291
SELECT LOG(0.7, 0.8);
Result: NULL
SELECT LOG(5, 10);
Result: 1.43067655807339
SELECT LOG(5, 25);
Result: 2.0
示例2:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | x |
---|---|
Data1 | 0.5 |
Data2 | 1 |
Data3 | 5 |
Data4 | 10 |
Data 5 | 50 |
下面给出的语句可以用于计算列 x 的以 10 为底的对数。
SELECT *, LOG(x) AS LOG_Value FROM Sample;
这将产生如下所示的结果:
Data | x | LOG_Value |
---|---|---|
Data1 | 0.5 | -0.301029995663981 |
Data2 | 1 | 0.0 |
Data3 | 5 | 0.698970004336019 |
Data4 | 10 | 1.0 |
Data5 | 50 | 1.69897000433602 |
示例 3:
考虑一个名为 Sample 的数据库表,其中包含以下记录:
Data | x | y |
---|---|---|
Data1 | 2 | 2 |
Data2 | 3 | 2 |
Data3 | 5 | 2 |
Data4 | 10 | 10 |
Data5 | 50 | 10 |
要计算以x列记录为底的y列记录的对数,可以使用以下查询:
SELECT *, LOG(x, y) AS LOG_Value FROM Sample;
这将产生如下所示的结果:
Data | x | y | LOG_Value |
---|---|---|---|
Data 1 | 2 | 2 | 1.0 |
Data 2 | 3 | 2 | 0.630929753571457 |
Data 3 | 5 | 2 | 0.430676558073393 |
Data 4 | 10 | 10 | 1.0 |
Data 5 | 50 | 10 | 0.588591910067779 |