SQL Server 函数

SQL Server (Transact-SQL) LOG() 函数返回自然对数或给定数字的指定底数的对数。在特殊情况下,它返回以下内容:

  • 如果数字小于或等于0,则返回错误。
  • 如果base小于或等于0,则返回错误。
  • 如果base等于1,则返回错误.

语法

/* 数字的自然对数 */
LOG(number)

/* 数字到指定底数的对数 */
LOG(number, base) 

参数

number必填。 指定数字。必须大于 0。
base指定底数。必须大于0且不等于1。

返回值

返回自然对数或以指定底数的对数

示例 1:

下面的示例显示了 LOG() 函数的用法。

SELECT LOG(1);
Result: 0

SELECT LOG(1.5);
Result: 0.4054651081081644

SELECT LOG(5);
Result: 1.6094379124341003

SELECT LOG(4, 3);
Result: 1.2618595071429148

SELECT LOG(0.8, 0.7);
Result: 0.6256216061886871

SELECT LOG(10, 0.5);
Result: -3.3219280948873626

SELECT LOG(25, 5);
Result: 2 

示例 2:

考虑一个名为 Sample 的数据库表,其中包含以下记录:

Datax
Data 10.5
Data 21
Data 35
Data 410
Data 550

下面给出的语句可用于计算基数x 列的 10 对数。

SELECT *, LOG(x, 10) AS LOG_Value FROM Sample; 

这将产生如下所示的结果:

DataxLOG_Value
Data 10.5-0.30102999566398114
Data 210
Data 350.6989700043360187
Data 4101
Data 5501.6989700043360185

示例 3:

考虑一个名为Sample的数据库表,其中包含以下记录:

Dataxy
Data 10.52
Data 212
Data 352
Data 41010
Data 55010

计算列x的记录的对数,以列的记录为底y,可以使用以下查询:

SELECT *, LOG(x, y) AS LOG_Value FROM Sample; 

这将产生如下所示的结果:

DataxyLOG_Value
Data 10.52-1
Data 2120
Data 3522.321928094887362
Data 410101
Data 550101.6989700043360185