SQL Server 函数

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

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

语法

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

/* 数字到指定底数的对数 */
LOG(number, base) 
  • 1
  • 2
  • 3
  • 4

参数

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 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

示例 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