Я хочу создать представление, которое будет отображать информацию из двух таблиц, соединенных полями разных типов. Одно поле - nvarchar, а другое - int. Я знаю, что мне нужно преобразовать один тип в другой, но не знаю, как это сделать. Любая помощь будет принята с благодарностью.
SELECT dbo.co.co_num, dbo.pck_hdr.weight, dbo.STR_ShipTrack.TrackingNumber
FROM dbo.co
INNER JOIN dbo.pck_hdr ON dbo.co.co_num = dbo.pck_hdr.co_num INNER JOIN dbo.STR_ShipTrack ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1
1 ответ
Глядя на ваш код, я тоже не могу сказать, что вам следует делать.
Механизм SQL выполняет автоматические преобразования для сравнения. Однако if может решить преобразовать символьное поле в целое число - и тогда выйдет ошибка.
Итак, просто введите свое поле int в nvarchar:
cast(IntField as nvarchar(255))
Длина не имеет значения для сравнения nvarchar()
.
В своем запросе вы должны заменить:
ON dbo.pck_hdr.pack_num = dbo.STR_ShipTrack.Reference1
С участием:
ON cast(dbo.pck_hdr.pack_num as nvarchar(255)) = dbo.STR_ShipTrack.Reference1
Похожие вопросы
Новые вопросы
sql
Язык структурированных запросов (SQL) - это язык запросов к базам данных. Вопросы должны включать примеры кода, структуру таблицы, примеры данных и тег для используемой реализации СУБД (например, MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2 и т. Д.). Если ваш вопрос относится исключительно к конкретной СУБД (использует определенные расширения / функции), используйте вместо этого тег этой СУБД. Ответы на вопросы, помеченные SQL, должны использовать стандарт ISO / IEC SQL.