对于“ max”运算符,操作数数据类型“ text”无效

时间:2019-01-03 09:28:35

标签: sql-server

SELECT JobID, MAX(DispoInfo1), MAX(DispoInfo5), MAX(DispoInf10)
    FROM
    (
        SELECT RowID AS JobID, FieldName, FieldValue
        FROM FurtherInfo
        WHERE FieldName IN ('DispoInfo1', 'DispoInfo5', 'DispoInf10')
    ) s
    pivot
    (
      MAX(FieldValue)
      FOR FieldName IN (DispoInfo1, DispoInfo5, DispoInf10)
    ) piv

为什么我们不能执行max(text数据类型值),但是可以在SQL中执行max(nvarchar)?

2 个答案:

答案 0 :(得分:1)

SELECT JobID, MAX(DispoInfo1), MAX(DispoInfo5), MAX(DispoInf10)
FROM
(
    SELECT RowID AS JobID, FieldName, 
  

CAST(FieldValue AS VARCHAR(MAX))AS FieldValue

    FROM FurtherInfo
    WHERE FieldName IN ('DispoInfo1', 'DispoInfo5', 'DispoInf10')
) s
pivot
(
  MAX(FieldValue)
  FOR FieldName IN (DispoInfo1, DispoInfo5, DispoInf10)
) piv

答案 1 :(得分:0)

您可以通过将文本字段转换为varchar(max)/ nvarchar(max)来使用max内的文本字段

MAX (CONVERT (varchar(max), fieldvalue ))