2013-11-13 5 views
4

У меня есть 2 столбца, на которых я хочу использовать условие. Но я получаю это сообщение об ошибке, и мой запрос верен. Я скоро приду к этому.SQL-преобразование float в varchar

Msg 8114, Level 16, State 5, строка 1
Ошибка преобразования типа данных VARCHAR плавать.

Так что это проблема, у меня есть ТЕМП-таблица, в которой идентификационный номер выглядит как этот 9001011234 мы можем назвать это, в другой, что я хочу, чтобы проверить с это выглядит 900101-1234 и этот для B - это шведский формат для идентификационных номеров.

Так что в моем состоянии я хочу проверить это, чтобы получить нужную сумму и правильный результат.

where A = B 

Остальная часть запроса в порядке, когда я удаляю это условие, это дает мне результат. Это только один бит, который неверен.

ответ

5

У вас есть формат VARCHAR, который не может быть тривиально преобразован в число. Я бы использовал REPLACE(b,'-','') = a, чтобы исправить этот формат, и пусть SQL Server позаботится об остальном.

-2

Вы пытаетесь сравнить значения, которые не являются одним и тем же типом данных. например, где «один» = 1

Вам нужно будет преобразовать одно из значений в один и тот же тип данных, как и другой.

+0

Вы не можете конвертировать, когда один из них является числовым, а другой один поплавок. Другое дело, я получу неправильный набор результатов, поскольку один из них имеет формат 900101-1234, а другой 9010011234 – SterlinkArcher

Смежные вопросы