带有INNER JOIN的SQL Server 2014 DISTINCT

时间:2016-08-16 16:32:09

标签: sql-server inner-join distinct sql-server-2014

嘿所有我有以下查询,我正在努力工作:

SELECT DISTINCT 
    APL.Status
    ,APL.DateModified
    ,APL.PID
    ,APL.PType
    ,APL.PName
    ,APL.PostDate
    ,APL.TID
    ,APL.HRate
    ,APL.Amount
    ,APL.PContact
    ,APL.PMail
    ,APL.PPhone
    ,APL.PFax
    ,APL.RDate
    ,PS.Comments 
FROM 
    [billing].[dbo].[x_APL] AS APL 
INNER JOIN 
    [billing].[dbo].[tblPS] AS PS ON APL.ProjectID = PS.ProjectID 
WHERE 
    APL.PID = '5879'

我得到的错误是:

  

无法将ntext数据类型选为DISTINCT,因为它无法比较。

如何解决此问题并仍使用INNER JOIN

2 个答案:

答案 0 :(得分:1)

您无法比较Ntext,图像,文本数据类型......作为一种解决方法,请尝试将所有这些数据类型转换为Nvarchar或Varchar ..

示例:

cast(textdatatye as varchar(10))

我建议自they will be removed in future version of SQLServer ..

以来更换它们
  

ntext,text和image数据类型将在SQL Server的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max),varchar(max)和varbinary(max)。

答案 1 :(得分:1)

据说,您的COMMENTS是ntext,使用CAST函数将数据类型转换为NVARCHAR。

而不是

PS.Comments

你可以写

cast(PS.Comments as nvarchar(4000)) as [Comments]