Типы данных 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
, замените его на +
и посмотрите, что произойдет.