Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 запрос на сравнение данных  [new]
Евгения1988
Member

Откуда:
Сообщений: 13
Доброго дня!
Есть две таблицы, содержащие ИНН.
в первой таблице ИНН записан в виде числа (тип bigint); во второй - в виде текста (тип varchar), то есть в значении имеются и ведущие нули и символы пробел и прочее. Нужно в результирующий набор вывести совпадающие значения (ИНН, которые встречаются в обеих таблицах).
я составила вот такой запрос:
select inn_1.inn from inn_1 where inn_1.inn = (select cast(inn_2.inn as bigint) from inn_2)
В результате выдает ошибку: Сообщение 8114, уровень 16, состояние 5, строка 1
Ошибка при преобразовании типа данных varchar к bigint.

Подскажите пожалуйста где ошибка в запросе?
3 янв 18, 15:45    [21080216]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
Prolog
Member

Откуда: Москва
Сообщений: 2788
Начните с
select inn from inn_2 where isnumeric(inn)=0 and nullif(inn,'') is not null
3 янв 18, 15:54    [21080232]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
xenix
Guest
SELECT inn from inn_2
WHERE TRY_CAST(INN AS BIGINT) IS NOT NULL
3 янв 18, 16:39    [21080270]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
Евгения1988
Member

Откуда:
Сообщений: 13
Prolog,
заранее извиняюсь за глупый вопрос, как говорится я еще только учусь..но я правильно понимаю, что Ваш запрос позволяет получить выборку из таблице 2 тех ИНН, которые однозначно нельзя будет преобразовать к числовому типу?
3 янв 18, 16:41    [21080274]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
Евгения1988
Member

Откуда:
Сообщений: 13
xenix,Спасибо большое. работает.
правда не очень понимаю чем cast отличается от try_cast
3 янв 18, 16:51    [21080284]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
xenix
Guest
Евгения1988,
не могу не повредничать :-) -поглядите справку. Если коротко, то CAST('Евгения1988' AS INT) упадет с "can not convert varchar to int",
а TRY_CAST вернет NULL
3 янв 18, 16:53    [21080291]     Ответить | Цитировать Сообщить модератору
 Re: запрос на сравнение данных  [new]
Евгения1988
Member

Откуда:
Сообщений: 13
xenix,очень изящная вредность которая идет во благо))))спасибо, Вы мне очень помогли)
3 янв 18, 16:56    [21080297]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить