powered by simpleCommunicator - 21.11.28     © 2024 Programmizd 02
Map
Форумы / Вопросы по IT / замена букв на цифры в MS SQL
25 сообщений из 53, страница 1 из 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
25 сообщений из 53, страница 1 из 3
Форумы / Вопросы по IT / замена букв на цифры в MS SQL
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали тему (2): Анонимы (2)
Читали форум (11): Анонимы (10), Yandex Bot 2 мин.
Пользователи онлайн (15): Анонимы (13), Yandex Bot, Bing Bot
x
x
Закрыть


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