Типы данных SQL Server nvarchar и varchar - несовместимая ошибка

Я унаследовал приложение С#, которое я преобразовал в vb. Я получаю одну ошибку, которая, насколько я вижу, не имеет никакого отношения к преобразованию.

У меня есть оператор SQL, который является....

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

Когда это выполняется, я получаю сообщение об ошибке:

Типы данных nvarchar и varchar несовместимы в булевом AND.

В таблице указаны как ResolverTeam, так и ResolverPerson как (nvarchar(255), null)

Почему я получаю эту ошибку?

Ответ 1

Попробуйте заменить '&' для "+"... по внешнему виду то, что вы пытаетесь сделать, это объединить 2 столбца... там что-то, что вам нужно, должно быть много: nvarchar удваивает размер регулярного varchar, что означает являются символами nvarchar, которые не находятся в таблице varchar...

Ответ 2

Вы должны использовать + для конкатенации строк:

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

Почему я получаю эту ошибку?

Вы получили эту ошибку из-за оператора &, который является побитовым И.

Ответ 3

Чтобы объединить строки в MSSQL, вы должны использовать +

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

Ответ 4

Это попытка конкатенации? ResolverTeam & ' | ' & ResolverPerson

& - побитовый оператор AND, замените его на + и посмотрите, что произойдет.