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

Откуда:
Сообщений: 5
Данные:
1. есть набор 4-значных чисел
2. исполняется select ... where tr='*'
где * какое-то 4-значное число из набора


Понятно, когда чисел мало, используем или (tr='1234' or tr='3456'), или tr IN ('1234','3456')
Но чисел несколько сотен.

Полагаю, в нормальном варианте можно создать таблицу из одного столбца (временная/постоянная), перебить тип данных, использовать новую таблицу в seltect с inner join.
Но у меня доступ только "зеркало", никакие update и прочее недоступно.

Вопрос: как преобразовать сотни чисел в формат 'число из списка'? Может в IN можно менять тип? Или Word, Exel дают такую возможность замены (чего не нашел)?
30 июн 18, 11:09    [21532762]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
iap
Member

Откуда: Москва
Сообщений: 46977
Vadim116,

откуда в запросе появляются несколько сотен чисел?
Руками набираются?
30 июн 18, 11:32    [21532778]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
Vadim116
Member

Откуда:
Сообщений: 5
Нет, скидывает коммерческий отдел, в виде набора цифр, их берут у партнеров.
30 июн 18, 11:34    [21532780]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
Vadim116,

откуда и куда этот набор цифр надо передать? Где и кем выполняется select?

Если из Excel копируется и вставляется в SQL Server Management Studio в виде столбика чисел, то в последней тупо через замену, используя регулярные выражения: начало строки на кавычку, конец на кавычку с запятой.
30 июн 18, 11:50    [21532798]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
Vadim116
Member

Откуда:
Сообщений: 5
skyANA, извините, я не специалист sql, всего лишь тестировщик, использующий sql.

Откуда/куда: есть набор цифр в почте, партнер сделал свой select и дал цифры. Теперь мне работать со своей базой.
Кто select нужный: я.

Да, цифры из почты могу вставить в Excel.
Как поставить (в sql при транспортировке из Excel, да и как вообще их связать) ' в начале строки и ', в конце, не знаю.
Вот, как добавить в select ... where tr IN (...) набор с (' в начале строки и ',) с цифрами из Excel?
30 июн 18, 12:09    [21532837]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
Vadim116,

тут не надо быть специалистом по sql, а надо знать, что при поиске и замене есть возможность использовать регулярные выражения (галочку соответсвующую отметить)
начало строки обозначается символом ^, указываете, что его надо заменить на кавычку
конец строки обозначается символом $, указываете, что его надо заменить на кавыску с запятой

Но Вы лучше для начала до конца опишите в каком конкретно виде Вы получаете набор чисел в почте? В виде столбика, строки, чего-то ещё?
30 июн 18, 12:18    [21532849]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
Vadim116,

а ещё можно тупо (так как у Вас числа 4-х значные), использовать выражение \d\d\d\d, выполнить замену '$&',
и, к примеру, строка 1234 5678 9012 преобразуется в '1234', '5678', '9012',
вот тут можете потренироваться: https://regexr.com/
30 июн 18, 12:31    [21532859]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
Vadim116
Member

Откуда:
Сообщений: 5
skyANA, в виде столбика в почте.

Грубо, есть расхождения данных в базе нашей/партнера. Мне надо сравнить, сделать диагноз для бага.
30 июн 18, 12:32    [21532860]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
Vadim116,

если в виде столбика, то

1234
5678
9012

заменится на

'1234',
'5678',
'9012',
30 июн 18, 12:35    [21532866]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
Vadim116
Member

Откуда:
Сообщений: 5
skyANA, спасибо. Ничего в том сайте не получается, но это я сам виноват, не разобрался.
Пойду в поиск "вставка Excel в sql"+замена. Ну или "замена в Excel"
30 июн 18, 13:09    [21532904]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
skyANA
Member

Откуда: Зеленоград
Сообщений: 27752
Vadim116,

в Excel не надо вставлять, сразу в SQL Server Management Studio и там в меню выбираете поиск и замену.
30 июн 18, 13:34    [21532929]     Ответить | Цитировать Сообщить модератору
 Re: Массив 4-значных чисел преобразовать в тип 'числа'  [new]
aleks222
Member

Откуда:
Сообщений: 949
Vadim116
Но у меня доступ только "зеркало", никакие update и прочее недоступно.

Вопрос: как преобразовать сотни чисел в формат 'число из списка'? Может в IN можно менять тип? Или Word, Exel дают такую возможность замены (чего не нашел)?


Ваще-то MS SQL Express бесплатен.
И имеючи ажно "зеркало", можно поставить себе на комп и пользоваться.
30 июн 18, 13:59    [21532951]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить