【问题标题】:'MOD' is not a recognized built-in function name'MOD' 不是可识别的内置函数名称
【发布时间】:2014-06-12 04:52:59
【问题描述】:

我想在SQL Server 2008R2 中使用MOD 函数并按照link 操作,但仍然收到消息:

'MOD' 不是可识别的内置函数名称。

DECLARE @m INT
SET @m = MOD(321,11)
SELECT @m

错误:

消息 195,第 15 级,状态 10,第 2 行
'MOD' 不是可识别的内置函数名称。

为什么我不能使用上面链接中的这个功能?

【问题讨论】:

    标签: sql sql-server-2008 tsql sql-server-2008-r2 modulo


    【解决方案1】:

    MOD 关键字仅存在于 DAX 语言(表格维度查询)中,不存在 TSQL

    请改用%

    参考:Modulo

    【讨论】:

    • 救生ans。谢谢
    • MOD 也适用于 Informix 语法...对于所有 1990 年代的人!
    • SQL Server 不符合 ANSI 有点令人沮丧。我希望能够编写一个在任何地方都可以使用的 SQL 查询。 Oracle 使用 MOD(),MySQL 使用 MOD() 和 %,Microsoft 使用 %。可笑。
    【解决方案2】:

    在 TSQL 中,模数是用百分号完成的。

    SELECT 38 % 5 会给你模 3

    【讨论】:

      【解决方案3】:

      对于您的确切样本,应该是这样的。

      DECLARE @m INT
      SET @m = 321%11
      SELECT @m
      

      【讨论】:

        【解决方案4】:

        可以使用 % 操作符来完成。 IE。 选择 50 % 5

        【讨论】:

          【解决方案5】:

          如果使用 JDBC 驱动程序,您可以像这样使用函数转义序列:

          select {fn MOD(5, 2)}
          #Result 1
          
          select  mod(5, 2)
          #SQL Error [195] [S00010]: 'mod' is not a recognized built-in function name.
          

          【讨论】:

          • 不是问题的答案,MOD 返回一个数除以除数后的余数。结果始终与除数具有相同的符号。
          猜你喜欢
          • 2014-01-25
          • 2017-04-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-02-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多