powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
Форумы / Вопросы по IT / замена букв на цифры в MS SQL
53 сообщений из 53, показаны все 3 страниц
замена букв на цифры в MS SQL
    #2199963
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2200140
Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гидроцефалы всех стран соединяйтесь!
vad72
Код: SQL
1.
UPDATE TABLE SET FIELD = REPLACE (FIELD, string_pattern, string_replacement)
...
Изменено: 05.06.2020, 12:52 - Программизд 02
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2200374
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделал тупо в лоб, так как красивого решения не нашел
Код: SQL
1.
2.
3.
4.
5.
case
  when  SUBSTRING(a.idtu,3,1)='Z'
  then left(('1' + RIGHT(a.idtu,len(a.idtu)-3)),LEN('1' + RIGHT(a.idtu,len(a.idtu)-3))-1)+ cast(ASCII(right(a.idtu,1)) AS CHAR(2))
  else a.idtu
end idtu
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2200667
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  05.06.2020, 14:53
сделал тупо в лоб, так как красивого решения не нашел
Разложить строку посимвольно, реплейснуть, сложить строку в кучу. Сделать можно это либо через таблицу чисел или генератор, либо через хмл. Ну это если требуется в один запрос все сделать. Если же таких ограничений нет, то и проблемы вообще нема.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2201210
Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Karjalan, живой
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
А по какому правилу должна производится замена?
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2201259
Владайка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хочется быть немножко сумасшедшей, а получается множко.
Программизд 02  05.06.2020, 12:51
vad72
Код: SQL
1.
UPDATE TABLE SET FIELD = REPLACE (FIELD, string_pattern, string_replacement)
А вот тот на собеседовании знал только insert, update, delete.
...
Зачем платить психотерапевту, если его можно придумать, и разговаривать с ним совершенно бесплатно?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2207021
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
SQL 2017
Код: SQL
1.
PRINT TRANSLATE ( '62Z4953FR45834A','ZFRA','0123');
...
А вы шо думали, всё так просто?
Рейтинг: 1 / 0
Нравится: eNose
замена букв на цифры в MS SQL
    #2207064
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2  05.06.2020, 20:16
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
А по какому правилу должна производится замена?
у меня типа поля bigint, но как оказалось, у некоторых компаниях специалисты слабые, не могут вытянуть из БД уникальный код, они могут только другой код уникальный предоставить, но он содержит буквы. Хорошо, что в моем случае, по факту, буквы только в определенных местах (хотя там могут быть и цифры). Поэтому, чтобы на ходу получить уникальный код я заменил буквы на ascii(@символ).
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2207069
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  09.06.2020, 05:27
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
SQL 2017
Код: SQL
1.
PRINT TRANSLATE ( '62Z4953FR45834A','ZFRA','0123');
у нас server 2007 , нет такой функции. Но в моем случае, нужно было бы вместо буквы вставлять две цифры, чтобы не было пересечений.
Но решение очень элегантное!
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2207105
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vad72  09.06.2020, 07:50
SandalTree  09.06.2020, 05:27
vad72  05.06.2020, 11:35
...
SQL 2017
Код: SQL
1.
PRINT TRANSLATE ( '62Z4953FR45834A','ZFRA','0123');
у нас server 2007 , нет такой функции. Но в моем случае, нужно было бы вместо буквы вставлять две цифры, чтобы не было пересечений.
Но решение очень элегантное!
Что за версия сиквела? Такой не бывает
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2207106
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  09.06.2020, 08:27
vad72  09.06.2020, 07:50
SandalTree  09.06.2020, 05:27
...
у нас server 2007 , нет такой функции. Но в моем случае, нужно было бы вместо буквы вставлять две цифры, чтобы не было пересечений.
Но решение очень элегантное!
Что за версия сиквела? Такой не бывает
да, действительно, вроде бы пишет 2008R2
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2208161
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
WildMage  09.06.2020, 08:27
vad72  09.06.2020, 07:50
SandalTree  09.06.2020, 05:27
...
у нас server 2007 , нет такой функции. Но в моем случае, нужно было бы вместо буквы вставлять две цифры, чтобы не было пересечений.
Но решение очень элегантное!
Что за версия сиквела? Такой не бывает
гуглу забанили?

Уже 4 года этой функции как с 2017 и на Ажуре.
https://docs.microsoft.com/en-us/sql/t-sql/functions/translate-transact-sql?view=sql-server-ver15
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2208162
WildMage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  09.06.2020, 15:25
WildMage  09.06.2020, 08:27
vad72  09.06.2020, 07:50
...
Что за версия сиквела? Такой не бывает
гуглу забанили?

Уже 4 года этой функции как с 2017 и на Ажуре.
https://docs.microsoft.com/en-us/sql/t-sql/functions/translate-transact-sql?view=sql-server-ver15
Да при чем тут Гугл. Он сказал, что версия секвела 2007. Такой нет!
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2208195
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WildMage  09.06.2020, 15:26
SandalTree  09.06.2020, 15:25
WildMage  09.06.2020, 08:27
...
гуглу забанили?

Уже 4 года этой функции как с 2017 и на Ажуре.
https://docs.microsoft.com/en-us/sql/t-sql/functions/translate-transact-sql?view=sql-server-ver15
Да при чем тут Гугл. Он сказал, что версия секвела 2007. Такой нет!
а просто 7 есть? Папка называется MSSql7 с дистрибутивом.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2208205
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
WildMage  09.06.2020, 15:26
SandalTree  09.06.2020, 15:25
WildMage  09.06.2020, 08:27
...
гуглу забанили?

Уже 4 года этой функции как с 2017 и на Ажуре.
https://docs.microsoft.com/en-us/sql/t-sql/functions/translate-transact-sql?view=sql-server-ver15
Да при чем тут Гугл. Он сказал, что версия секвела 2007. Такой нет!
Это вообще про что?

Я сразу указал 2017

А что у товарища, я не знаю.

Кстати, такие версии SQL Server как 2007, 2011, 2015 - регулярно появляются в резюме и на интервью.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2208649
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
Так что тут разложить строку в символы и собрать ее обратно не осилили? Нужен пример? :)

SandalTree
Вы бы еще товарищу объяснили, что можно менять так 1-к-1, и нихрена нельзя 1 символ на 2 (:
Вот к примеру оттранслируйте вот это вот: 'qwertyuiopas' туда в цифери-обратно в буквери без потерь. Ы?
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2209286
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
kDn  09.06.2020, 17:58
Так что тут разложить строку в символы и собрать ее обратно не осилили? Нужен пример? :)

SandalTree
Вы бы еще товарищу объяснили, что можно менять так 1-к-1, и нихрена нельзя 1 символ на 2 (:
Вот к примеру оттранслируйте вот это вот: 'qwertyuiopas' туда в цифери-обратно в буквери без потерь. Ы?
Как вы себе это представляете?
Обратно по любому не получится.

Допустим переводим 'qwertyuiopas' в '012456789101112'
И как это вернуть "взад"?

Кстати, я не сказал что скульная функция - супер крута. Она просто есть и иногда может быть очень удобна.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2209732
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
SandalTree  09.06.2020, 22:25
Как вы себе это представляете?
Обратно по любому не получится.
Смотря как кодировать. Все возможно, умеючи. (:
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2209761
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
kDn  10.06.2020, 02:01
SandalTree  09.06.2020, 22:25
Как вы себе это представляете?
Обратно по любому не получится.
Смотря как кодировать. Все возможно, умеючи. (:
Вот и я о том-же

Вопрос второкота был проигнорирован.
Цитата 
А по какому правилу должна производится замена?
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2209931
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  10.06.2020, 02:16
Цитата 
А по какому правилу должна производится замена?
да по любому принципу. В базу данных импортируются таблицы от клиентов (текстовые файлы CSV) через утилиту SQLCMD, импортируется в существующую таблицу, которой уже 10 лет и там миллионы записей. В этой таблице есть поле с индексом типа bigint. Но у одного из клиентов, изменилась ПО, в результате которого в CSV файле, вместо поля с цифрами, теперь поле, в котором есть и буквы. И он, сука, нихрена сделать не может, так как это, блядь накуй, SAP, у него специалистов нет, а сам он тупорылый гном.
У меня два выхода, изменить в своей таблице тип поля с bigint на varchar, но что-то мне подсказывает, что поля такого типа будут хуже индексироваться, если я не прав, то поправьте меня, плюс перезалить все данные нужно будет, хотя, возможно, есть какой-то более оперативный способ изменения типа поля.
Поэтому я решил на лету менять буквы на цифры (на ASCII код буквы), чтобы на выходе было то, что можно вставить в поле с типом bigint, и чтобы поле оставалось уникальным. Хорошо, что пока буквы в определенных местах и можно просто решить проблему. А если завтра буквы начнут появляться в любом месте, то тогда что? Придется перебирать все позиции в строке и менять всё, неважно буква или цифра, на ASCII код. :(
...
Изменено: 10.06.2020, 07:56 - vad72
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2209933
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня тут мысль мелькнула, немного не по теме. А если текстовый параметр (поле в таблице) какой-то, который используется для поиска, сохранять в БД в виде bigint, то поиск по такому полю будет быстрее осуществляться? Если вместо фамилии я буду в БД сохранять фамилию в виде bigint (если цифр хватит), то поиск будет быстрее же?
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2210282
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  10.06.2020, 08:00
У меня тут мысль мелькнула, немного не по теме. А если текстовый параметр (поле в таблице) какой-то, который используется для поиска, сохранять в БД в виде bigint, то поиск по такому полю будет быстрее осуществляться? Если вместо фамилии я буду в БД сохранять фамилию в виде bigint (если цифр хватит), то поиск будет быстрее же?
Поиск какой требуется? Если по точному соответствию или по фываывф%, то с индексами все нормально будет. Чтобы не выдумывать всякое непонятное - проще поглядеть планы запросов. А по поводу сохранять фио в циферь. Вы что хеширование ручное решили сделать? А нафига? (ж
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2210306
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну да, главное чтобы без коллизий. Я выше писал зачем, нужно "текстовое поле" засунуть в bigint.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2211055
eNose
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[не активирован]
Вадик, извини за вопрос.

Ты гуманитарий?
...
Рейтинг: 1 / 0
Нравится: Бояннизд02
замена букв на цифры в MS SQL
    #2211070
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  10.06.2020, 11:14
ну да, главное чтобы без коллизий. Я выше писал зачем, нужно "текстовое поле" засунуть в bigint.
Ненадо нихрена никуда засовывать. И заодно не надо считать серверописателей полными баранами, которые без подсказки не знают как чего быстрее работать будет. Итог - ежели схему можно поменять убрав нафиг бигинт, но нужно поменять и забыть.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2211132
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  10.06.2020, 07:51
SandalTree  10.06.2020, 02:16
Цитата 
...
да по любому принципу. В базу данных импортируются таблицы от клиентов (текстовые файлы CSV) через утилиту SQLCMD, импортируется в существующую таблицу, которой уже 10 лет и там миллионы записей. В этой таблице есть поле с индексом типа bigint. Но у одного из клиентов, изменилась ПО, в результате которого в CSV файле, вместо поля с цифрами, теперь поле, в котором есть и буквы. И он, сука, нихрена сделать не может, так как это, блядь накуй, SAP, у него специалистов нет, а сам он тупорылый гном.
У меня два выхода, изменить в своей таблице тип поля с bigint на varchar, но что-то мне подсказывает, что поля такого типа будут хуже индексироваться, если я не прав, то поправьте меня, плюс перезалить все данные нужно будет, хотя, возможно, есть какой-то более оперативный способ изменения типа поля.
Поэтому я решил на лету менять буквы на цифры (на ASCII код буквы), чтобы на выходе было то, что можно вставить в поле с типом bigint, и чтобы поле оставалось уникальным. Хорошо, что пока буквы в определенных местах и можно просто решить проблему. А если завтра буквы начнут появляться в любом месте, то тогда что? Придется перебирать все позиции в строке и менять всё, неважно буква или цифра, на ASCII код. :(
Так понятнее.

1. Сколько у вас разных букв? Если 9 или меньше, то тупо меняете на 1-9
Если первый символ не может быть буквой, то у вас есть опция использовать ещё и "0"

2. Использовать BINARY_CHECKSUM. Однако, там возможны дубликаты, поэтому можете сделать так
Код: SQL
1.
2.
3.
SELECT CAST(BINARY_CHECKSUM(LEFT(Value,8)) as BIGINT) * POWER(CAST(2 as BIGINT),32) + CAST(BINARY_CHECKSUM(RIGHT(Value,8)) as BIGINT)
, Value
FROM Table
По любому, если у вас 15 символов, вы не можете запихнуть их в BIGINT без дубликатов.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2211155
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
kDn  10.06.2020, 15:35
vad72  10.06.2020, 11:14
ну да, главное чтобы без коллизий. Я выше писал зачем, нужно "текстовое поле" засунуть в bigint.
Ненадо нихрена никуда засовывать. И заодно не надо считать серверописателей полными баранами, которые без подсказки не знают как чего быстрее работать будет. Итог - ежели схему можно поменять убрав нафиг бигинт, но нужно поменять и забыть.
Вообще-то он может быть прав.
SAP разрабатывали на "экстремальные ситуации".
Подозреваю что у топик-стартера не этот случай и возможно дажи хватило-бы INT.

Может быть просто создать справочник с INT IDENTITY(-2147483647,1).
Не думаю что там будет больше 4 миллиардов значений.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2211205
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDn  10.06.2020, 15:35
Итог - ежели схему можно поменять убрав нафиг бигинт, но нужно поменять и забыть.
Я могу поменять и забыть, но это поле праймере кей, по нему идет связь с другими таблицами.
Конкретно сейчас в этой табличке 239 672 048 записей. Что будет со скоростью работы sql-запросов, процедур ? Я боюсь, что скорость может снизится, а мне такое не подходит.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2211248
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
eNose  10.06.2020, 15:33
Вадик, извини за вопрос.

Ты гуманитарий?
военный, не знаю куда их, но круглое носим, квадратное катаем.
...
Рейтинг: 1 / 0
Нравится: eNose
замена букв на цифры в MS SQL
    #2211684
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  10.06.2020, 16:19
военный, не знаю куда их, но круглое носим, квадратное катаем.
Ага... ща тебе хохол насоветует в моем лице))). У меня прям конфликт интересов - с одной стороны професси анальный, с другой похерить базу брацким воякам был бы рад. Надеюсь там шота ценное и бакапы как правило уже проепаны?

Вообще сандаль дело говорит, вполне годный вариант. Любой из них.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2212122
Бояннизд02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сообщение под именем пользователя
и за ради чего этот изврат?
давайте попросим вада72 полный идентификатор, не удивлюсь. если вдруг там окажется guid.
странно, что ещё никто не предложил варианта с дополнительным полем.
...
...верить в наше время нельзя никому, порой даже самому себе. Мне - можно. (с) [:kozel]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2212793
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бояннизд02  10.06.2020, 21:13
и за ради чего этот изврат?
давайте попросим вада72 полный идентификатор, не удивлюсь. если вдруг там окажется guid.
странно, что ещё никто не предложил варианта с дополнительным полем.
И куда мне это дополнительное поле? :)
Это поле, которое 15 лет существует - primary key таблицы, через которое, естественно, идет связь на другие таблицы в БД.
И так как на том конце дегенераты, которые не могут подготовить файл для импорта, то мне приходится на моей стороне, где собираются все данные со всех компаний идти на один из шагов:
1. Изменить все праймеры кей в существующих таблицах с bigint на varchar (с учетом, что кол-во записей несколько миллиардов в БД, это займет некоторое время). Скорость выборок упадет.
2. Но ходу при импорте данных из файла преобразовывать (хешировать) их столбец с буквами в bigint (и там не guid). Тут, как по мне, никаких проблем не должно возникнуть, сейчас так и настроил.
3. Увольнять персонал на том конце, пока не сделают поле типа bigint (но я на такое никогда не иду, все мы люди, нужно друг другу помогать, тем более, что там SAP, и они и так там всё в "рукопашную" делают, бедняги).

P.S. Кстати, они мне еще одну задачку добавили, стали отрицательные числа в текстовый файл писать в виде 1234.56- . Тоже надо подумать, как это исправить на лету.
...
Изменено: 11.06.2020, 08:25 - vad72
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2212801
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDn  10.06.2020, 18:45
Надеюсь там шота ценное и бакапы как правило уже проепаны?
Она ценная только для меня, так как я использую её для выполнения своих непосредственных обязанностей - анализа и аудита компаний семи областей Украины. На основе этих данных акционеры принимают свои управленческие решения. Я просто у них инструмент для анализа. А мне для анализа нужен массив данных.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2212805
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  10.06.2020, 15:52
SAP разрабатывали на "экстремальные ситуации".
Если я правильно понял ситуацию, то там специалисты уволились, которые "писали/настраивали" систему, вернее их переманили в другую компанию. А те, что остались, они не могут что-то сделать, так как не хватает компетенции. Бизнес будет сносить этот САП, так как он столько денег не зарабатывает, чтобы оплачивать эту систему.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213430
Бояннизд02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сообщение под именем пользователя
так если обратная связь не нужна, то нахера этот огород?
...
...верить в наше время нельзя никому, порой даже самому себе. Мне - можно. (с) [:kozel]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213442
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бояннизд02  11.06.2020, 13:52
так если обратная связь не нужна, то нахера этот огород?
Чтобы импортировать поле с буквами в поле типа bigint. Но мне повезло, что буквы большие от A-Z, у них анси код две цифры, и они в двух местах только попадаются, поэтому можно легко в бигинт и назад.

А вот если бы буквы попадались в любом месте, то пришлось бы "пробегаться" по-символьно и делать замену каждого символа через анси в трехзначную цифру.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213510
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  11.06.2020, 08:31
Она ценная только для меня, так как я использую её для выполнения своих непосредственных обязанностей - анализа и аудита компаний семи областей Украины. На основе этих данных акционеры принимают свои управленческие решения. Я просто у них инструмент для анализа. А мне для анализа нужен массив данных.
Вы гражданином какой страны являетесь и кто ваш работодатель. Интересует страна, а не имя.
Второй момент - можете ли вы каким-то образом подтвердить правдивость ваших слов, в случае если ответ на оба вопроса не является - РФ.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213540
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Акционеры из разных стран, я из Киева.
...
Изменено: 11.06.2020, 15:03 - vad72
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213565
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  11.06.2020, 08:36
SandalTree  10.06.2020, 15:52
SAP разрабатывали на "экстремальные ситуации".
Если я правильно понял ситуацию, то там специалисты уволились, которые "писали/настраивали" систему, вернее их переманили в другую компанию. А те, что остались, они не могут что-то сделать, так как не хватает компетенции. Бизнес будет сносить этот САП, так как он столько денег не зарабатывает, чтобы оплачивать эту систему.
Я знал бизнес, который так обанкротился.
Ну тогда вам нужно просто сделать табличку с переназначениями, в которой каждый код из САП будет соответствовать коду в INT IDENTITY(-2147483647,1).
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213571
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  11.06.2020, 14:02
Бояннизд02  11.06.2020, 13:52
так если обратная связь не нужна, то нахера этот огород?
Чтобы импортировать поле с буквами в поле типа bigint. Но мне повезло, что буквы большие от A-Z, у них анси код две цифры, и они в двух местах только попадаются, поэтому можно легко в бигинт и назад.

А вот если бы буквы попадались в любом месте, то пришлось бы "пробегаться" по-символьно и делать замену каждого символа через анси в трехзначную цифру.
Если у вас НЕ единовременный импорт, а нужно будет бегать туда-сюда, то лучше уж оставить всё как есть.
Вы потеряете больше на ежедневные конвертации чем вместо 8 байт в PK будете юзать 16.
Главное что кластерный индекс делайте INT.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213610
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  11.06.2020, 15:20
Я знал бизнес, который так обанкротился.
я не против sap, просто мы не можем себе его позволить, если всё прибыль отдавать, то даже тогда мы не закроем расходы на sap. Раньше часть компаний было американскими. у которых "мировая" лицензия на sap (точно не знаю ,как она называется) и мы (часть компаний где сап) ничего не платили, так как оплату лицензий делала американская компания в рамках всех стран на планете земля. Мы там просто терялись, что мы есть, что нет, для них это не имело значение. Потом ,когда американцы продали акции, САП остался и что с ним делать? Мы не может самостоятельно осилить оплату его.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213679
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  11.06.2020, 15:03
Акционеры из разных стран, я из Киева.
Ладно, буду предполагать, что вы не брешете. Поскольку я последние годы чутка злой на РФ и ни при каких обстоятельствах деловых отношений с этой страной иметь не хочу.

---------------
Теперь по сути вашего вопроса.
Менять нечто там в id для данных приходящих извне - бред.
Вам фактически нужно сделать чтобы id (PK) менялся самостоятельно хоть как IDENTITY, хоть через секвенс. Пофиг.
А для сопоставления нужно попросту использовать доп. поле refExternalID, где вы на всяк случай будете сохранять ID из внешней системы. Вот и все.

* Когда речь идет о модификации таблиц с мульярдами строк, то нужно понимать, что это будет крайне долго и затратно по логу. Следствие - возможно имеет смысл создать таблицу нужной структуры - слить туда данные неспешно, дальше грохнуть исходную, а целевую переименовать.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213703
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kDn  11.06.2020, 16:30
vad72  11.06.2020, 15:03
Акционеры из разных стран, я из Киева.
Ладно, буду предполагать, что вы не брешете. Поскольку я последние годы чутка злой на РФ и ни при каких обстоятельствах деловых отношений с этой страной иметь не хочу.

---------------
Теперь по сути вашего вопроса.
Менять нечто там в id для данных приходящих извне - бред.
Вам фактически нужно сделать чтобы id (PK) менялся самостоятельно хоть как IDENTITY, хоть через секвенс. Пофиг.
А для сопоставления нужно попросту использовать доп. поле refExternalID, где вы на всяк случай будете сохранять ID из внешней системы. Вот и все.

* Когда речь идет о модификации таблиц с мульярдами строк, то нужно понимать, что это будет крайне долго и затратно по логу. Следствие - возможно имеет смысл создать таблицу нужной структуры - слить туда данные неспешно, дальше грохнуть исходную, а целевую переименовать.
Ну, я не знаю, какой смысл еще одного поля, если можно преобразовать исходное в BIGINT, даже с возможностью выкрутить из него обратно начальное значение, если понадобится.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213729
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  11.06.2020, 16:54
kDn  11.06.2020, 16:30
vad72  11.06.2020, 15:03
...
Ладно, буду предполагать, что вы не брешете. Поскольку я последние годы чутка злой на РФ и ни при каких обстоятельствах деловых отношений с этой страной иметь не хочу.

---------------
Теперь по сути вашего вопроса.
Менять нечто там в id для данных приходящих извне - бред.
Вам фактически нужно сделать чтобы id (PK) менялся самостоятельно хоть как IDENTITY, хоть через секвенс. Пофиг.
А для сопоставления нужно попросту использовать доп. поле refExternalID, где вы на всяк случай будете сохранять ID из внешней системы. Вот и все.

* Когда речь идет о модификации таблиц с мульярдами строк, то нужно понимать, что это будет крайне долго и затратно по логу. Следствие - возможно имеет смысл создать таблицу нужной структуры - слить туда данные неспешно, дальше грохнуть исходную, а целевую переименовать.
Ну, я не знаю, какой смысл еще одного поля, если можно преобразовать исходное в BIGINT, даже с возможностью выкрутить из него обратно начальное значение, если понадобится.
А какой в этом смысл?

Во первых, BIGINT будет не сильно быстрее чем оригинал, но медленнее чем INT.

Если вам нужны "предыдущие значения", скиньте их в "исторический справочник" и дело с концом. Так будет максимально быстро работать.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213748
kDn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
g?oes to sleep
vad72  11.06.2020, 16:54
Ну, я не знаю, какой смысл еще одного поля, если можно преобразовать исходное в BIGINT, даже с возможностью выкрутить из него обратно начальное значение, если понадобится.
Это вообще разные вопросы. Если вам нужен источник - то сохраняете как есть (без преобразований) в отдельном поле. Если же источник - не нужен, можно не сохранять. Что же касается самого PK, то в случае если не хватает INT - можете изменить его на BIGINT, попутно не забыв поменять все связанные таблицы, либо можно оставить как есть, я ведь на 99% уверен, что у вас еще диапазон отрицательных значений в нем не освоен))). А RESEED при необходимости никто не отменял. Заниматься же преобразованием чего-то внешнего по загадочным законам - бред. Чем быстрее до вас это дойдет, тем меньше проблем огребете.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2213806
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
kDn  11.06.2020, 17:30
vad72  11.06.2020, 16:54
Ну, я не знаю, какой смысл еще одного поля, если можно преобразовать исходное в BIGINT, даже с возможностью выкрутить из него обратно начальное значение, если понадобится.
Это вообще разные вопросы. Если вам нужен источник - то сохраняете как есть (без преобразований) в отдельном поле. Если же источник - не нужен, можно не сохранять. Что же касается самого PK, то в случае если не хватает INT - можете изменить его на BIGINT, попутно не забыв поменять все связанные таблицы, либо можно оставить как есть, я ведь на 99% уверен, что у вас еще диапазон отрицательных значений в нем не освоен))). А RESEED при необходимости никто не отменял. Заниматься же преобразованием чего-то внешнего по загадочным законам - бред. Чем быстрее до вас это дойдет, тем меньше проблем огребете.
Ему инта вполне хватит, у него 200 миллионов значений против 4 миллиардов.
Ещё на много-много лет хватит, а к тому времени он уже на пенсию уйдёт.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2214750
KADETXXXIII
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kDn  11.06.2020, 16:30
Заниматься же преобразованием чего-то внешнего по загадочным законам - бред. Чем быстрее до вас это дойдет, тем меньше проблем огребете.
Тут не поспоришь.
Разве что, БД эта исключительно для моего личного пользования по работе. Просто я решил брать "первичные" данные к себе в БД, без изменений (просто пробиваю контрольные суммы где нужно) и тут у себя на месте делать различные отчеты для себя перед аудитом (в принципе, благодаря этим данным я и знаю, куда ехать и куда тыкать носом). Ну и внеплановые отчеты срочные для акционеров.
Можно было бы пойти другим путем, с мест просить присылать готовые отчеты, а потом их тут сбивать в один, как делают некоторые отделы, но это, я считаю, не эффективно.
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2214757
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  11.06.2020, 18:15
Ему инта вполне хватит, у него 200 миллионов значений против 4 миллиардов.
Ещё на много-много лет хватит, а к тому времени он уже на пенсию уйдёт.
максимальное число там 199 999 889 612 349 , так что никак в INT
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2215217
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  12.06.2020, 08:35
SandalTree  11.06.2020, 18:15
Ему инта вполне хватит, у него 200 миллионов значений против 4 миллиардов.
Ещё на много-много лет хватит, а к тому времени он уже на пенсию уйдёт.
максимальное число там 199 999 889 612 349 , так что никак в INT
Какая разница сколько там цифр, главное сколько там всего записей, и если вам нужна производительность и вы не понимаете идею, которую вам предлагают, то переспросите.
Ну или оставьте всё как есть и не пудрите людям мозги.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2220685
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  12.06.2020, 14:11
Какая разница сколько там цифр, главное сколько там всего записей.
может я не верно озвучил ранее, тогда повторюсь, у меня импортируется не одна таблица, это поле не просто PK, по этому полю идет связь с другими таблицами, его нельзя тупо заменять на другой "автосчетчик".
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2221654
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  15.06.2020, 08:06
SandalTree  12.06.2020, 14:11
Какая разница сколько там цифр, главное сколько там всего записей.
может я не верно озвучил ранее, тогда повторюсь, у меня импортируется не одна таблица, это поле не просто PK, по этому полю идет связь с другими таблицами, его нельзя тупо заменять на другой "автосчетчик".
Вопрос в том у вас единовременная конвертация или вы собираетесь это делать регулярно или вообще работать в параллельном режиме?
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2228688
vad72
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandalTree  15.06.2020, 14:10
vad72  15.06.2020, 08:06
SandalTree  12.06.2020, 14:11
...
может я не верно озвучил ранее, тогда повторюсь, у меня импортируется не одна таблица, это поле не просто PK, по этому полю идет связь с другими таблицами, его нельзя тупо заменять на другой "автосчетчик".
Вопрос в том у вас единовременная конвертация или вы собираетесь это делать регулярно или вообще работать в параллельном режиме?
файлы поступают постоянно. Я согласен, что дополнительное поле с первичным ключом с буквами было бы красиво, но если его можно на ходу туда сюда преобразовывать, то пока не буду делать.

Да и вообще, что-то я устал, если честно. Хочется чего-то нового, например, открыть какую-то маленькую кофейню и наслаждаться жизнью, работая на себя, а не заносить хвосты всем кому только можно (но это наёмный труд, всё по честному, без принуждения). [:smile]
...
Рейтинг: 0 / 0
замена букв на цифры в MS SQL
    #2229548
SandalTree
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[игнорирует гостей кроме]
Powered by Power Rangers
vad72  18.06.2020, 07:50
SandalTree  15.06.2020, 14:10
vad72  15.06.2020, 08:06
...
Вопрос в том у вас единовременная конвертация или вы собираетесь это делать регулярно или вообще работать в параллельном режиме?
файлы поступают постоянно. Я согласен, что дополнительное поле с первичным ключом с буквами было бы красиво, но если его можно на ходу туда сюда преобразовывать, то пока не буду делать.

Да и вообще, что-то я устал, если честно. Хочется чего-то нового, например, открыть какую-то маленькую кофейню и наслаждаться жизнью, работая на себя, а не заносить хвосты всем кому только можно (но это наёмный труд, всё по честному, без принуждения). [:smile]
Ну так забейте.
Оставьте как есть.
При таком обьёме данных при правильных индексах и запросах тормоза будут совсем небольшие.
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
53 сообщений из 53, показаны все 3 страниц
Форумы / Вопросы по IT / замена букв на цифры в MS SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (3): Анонимы (3)
Читали форум (11): Анонимы (10), Yandex Bot 6 мин.
Пользователи онлайн (18): Анонимы (16), Yandex Bot, Bing Bot 1 мин.
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]