SQL Server数据类型nvarchar和varchar是不兼容的错误

时间:2012-12-27 13:20:13

标签: sql sql-server tsql

我继承了一个C#应用程序,我已将其转换为vb。我得到一个错误,据我所知,这与转换无关。

我有一个SQL语句....

SELECT   ResolverID AS ddlValue, ResolverTeam & ' | ' & ResolverPerson AS ddlText 
FROM     dbo.TblResolvers 
ORDER BY ResolverTeam, ResolverPerson;

当这个运行时我得到错误:

  

数据类型nvarchar和varchar在布尔值中不兼容   AND运算符。

在表格中,ResolverTeamResolverPerson都指定为(nvarchar(255),null

为什么我收到此错误?

4 个答案:

答案 0 :(得分:21)

尝试更换'&'对于'+'...看起来你想要做的就是连接2列...你需要做的事情就是:nvarchar是常规varchar的两倍,这意味着是nvarchar中不在varchar表中的字符...

答案 1 :(得分:3)

您应该使用+进行字符串连接:

SELECT 
  ResolverID AS ddlValue, 
  ResolverTeam + ' | ' + ResolverPerson AS ddlText 
FROM dbo.TblResolvers 
Order By ResolverTeam, ResolverPerson;
  

为什么我收到此错误?

由于& operator按位AND ,您收到了该错误。

答案 2 :(得分:3)

要在MSSQL中连接字符串,您应该使用+

SELECT ResolverID AS ddlValue, 
  ResolverTeam + ' | ' + ResolverPerson AS ddlText 
    FROM dbo.TblResolvers Order By ResolverTeam, ResolverPerson;

答案 3 :(得分:2)

这是连接尝试吗? ResolverTeam & ' | ' & ResolverPerson

&是按位运算符AND,将其替换为+,看看会发生什么。