【问题标题】:"Operand data type text is invalid for min operator" SQL Server“操作数数据类型文本对 min 运算符无效”SQL Server
【发布时间】:2018-07-23 16:09:09
【问题描述】:

我在尝试运行此代码时收到此错误“操作数数据类型文本对于 min 运算符无效”

Select
UserID,
min(Description)
FROM Table1
GROUP BY UserID

我试过了

select min(cast(AttributeValue as varchar(max)))

但我无法让它工作。

有没有办法解决这个问题?谢谢

【问题讨论】:

  • varchar(min)?我知道你会选择 MIN 聚合,但即便如此,它仍然是 varchar(max)。 (这里的max 仅表示“大字符串”,就像曾经使用过的text,并且不会因您应用的运算符而异。)
  • 错误在这里给你答案。 text 数据类型已经被弃用很长时间了。你应该使用varchar(max)。因此,您的查询将是:SELECT MIND(CAST(AttributeValue AS varchar(MAX)));。然而,期待糟糕的表现。
  • 重要!在 SQL Server 的未来版本中将删除 ntext、text 和 image 数据类型。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用 nvarchar(max)、varchar(max) 和 varbinary(max)。ntext, text, and image (Transact-SQL)
  • 文本块的 MINIMUM 值是多少?
  • MIN 可以与 numeric、char、varchar、uniqueidentifier 或 datetime 列一起使用

标签: sql sql-server aggregate


【解决方案1】:

“Min”功能不适用于“group by”。所以,请尝试:

Select UserID   
FROM Table1
GROUP BY UserID

【讨论】:

    【解决方案2】:

    试试这个:

    Select UserID,min(CAST(Description AS VARCHAR(50)))
    FROM Table1
    GROUP BY UserID
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-11
      • 1970-01-01
      • 2017-03-11
      • 1970-01-01
      • 2017-01-24
      • 2013-06-14
      • 1970-01-01
      相关资源
      最近更新 更多