Гость
Форумы / Вопросы по IT / замена букв на цифры в MS SQL / 25 сообщений из 53, страница 1 из 3
05.06.2020, 11:35
    #2199963
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
...
Рейтинг: 0 / 0
05.06.2020, 12:51
    #2200140
Программизд 02
Администратор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гидроцефалы всех стран соединяйтесь!
замена букв на цифры в MS SQL
vad72
Код: SQL
1.
UPDATE TABLE SET FIELD = REPLACE (FIELD, string_pattern, string_replacement)
...
Изменено: 05.06.2020, 12:52 - Программизд 02
Рейтинг: 0 / 0
05.06.2020, 14:53
    #2200374
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
сделал тупо в лоб, так как красивого решения не нашел
Код: 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
05.06.2020, 16:43
    #2200667
kDn
kDnПривилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
g?oes to sleep
замена букв на цифры в MS SQL
vad72  05.06.2020, 14:53
сделал тупо в лоб, так как красивого решения не нашел
Разложить строку посимвольно, реплейснуть, сложить строку в кучу. Сделать можно это либо через таблицу чисел или генератор, либо через хмл. Ну это если требуется в один запрос все сделать. Если же таких ограничений нет, то и проблемы вообще нема.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
05.06.2020, 20:16
    #2201210
Cat2
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Karjalan, живой
замена букв на цифры в MS SQL
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
А по какому правилу должна производится замена?
...
Рейтинг: 0 / 0
05.06.2020, 20:24
    #2201259
Владайка
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Хочется быть немножко сумасшедшей, а получается множко.
замена букв на цифры в MS SQL
Программизд 02  05.06.2020, 12:51
vad72
Код: SQL
1.
UPDATE TABLE SET FIELD = REPLACE (FIELD, string_pattern, string_replacement)
А вот тот на собеседовании знал только insert, update, delete.
...
Зачем платить психотерапевту, если его можно придумать, и разговаривать с ним совершенно бесплатно?
Рейтинг: 0 / 0
09.06.2020, 05:27
    #2207021
SandalTree
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Powered by Power Rangers
замена букв на цифры в MS SQL
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
SQL 2017
Код: SQL
1.
PRINT TRANSLATE ( '62Z4953FR45834A','ZFRA','0123');
...
А вы шо думали, всё так просто?
Рейтинг: 1 / 0
Нравится: eNose
09.06.2020, 07:47
    #2207064
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
Cat2  05.06.2020, 20:16
vad72  05.06.2020, 11:35
Есть текстовое поле, в нем английские буквы и цифры, например 62Z4953FR45834A.
К в SQL запросе заменить буквы на цифры?
Что-то не могу сообразить.
А по какому правилу должна производится замена?
у меня типа поля bigint, но как оказалось, у некоторых компаниях специалисты слабые, не могут вытянуть из БД уникальный код, они могут только другой код уникальный предоставить, но он содержит буквы. Хорошо, что в моем случае, по факту, буквы только в определенных местах (хотя там могут быть и цифры). Поэтому, чтобы на ходу получить уникальный код я заменил буквы на ascii(@символ).
...
Рейтинг: 0 / 0
09.06.2020, 07:50
    #2207069
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
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
09.06.2020, 08:27
    #2207105
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
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
09.06.2020, 08:35
    #2207106
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
WildMage  09.06.2020, 08:27
vad72  09.06.2020, 07:50
SandalTree  09.06.2020, 05:27
...
у нас server 2007 , нет такой функции. Но в моем случае, нужно было бы вместо буквы вставлять две цифры, чтобы не было пересечений.
Но решение очень элегантное!
Что за версия сиквела? Такой не бывает
да, действительно, вроде бы пишет 2008R2
...
Рейтинг: 0 / 0
09.06.2020, 15:25
    #2208161
SandalTree
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Powered by Power Rangers
замена букв на цифры в MS SQL
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
09.06.2020, 15:26
    #2208162
WildMage
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
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
09.06.2020, 15:38
    #2208195
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
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
09.06.2020, 15:44
    #2208205
SandalTree
Участник
[игнорирует гостей кроме]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Powered by Power Rangers
замена букв на цифры в MS SQL
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
09.06.2020, 17:58
    #2208649
kDn
kDnПривилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
g?oes to sleep
замена букв на цифры в MS SQL
Так что тут разложить строку в символы и собрать ее обратно не осилили? Нужен пример? :)

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

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

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

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

Вопрос второкота был проигнорирован.
Цитата 
А по какому правилу должна производится замена?
...
А вы шо думали, всё так просто?
Рейтинг: 0 / 0
10.06.2020, 07:51
    #2209931
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
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
10.06.2020, 08:00
    #2209933
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
У меня тут мысль мелькнула, немного не по теме. А если текстовый параметр (поле в таблице) какой-то, который используется для поиска, сохранять в БД в виде bigint, то поиск по такому полю будет быстрее осуществляться? Если вместо фамилии я буду в БД сохранять фамилию в виде bigint (если цифр хватит), то поиск будет быстрее же?
...
Рейтинг: 0 / 0
10.06.2020, 11:07
    #2210282
kDn
kDnПривилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
g?oes to sleep
замена букв на цифры в MS SQL
vad72  10.06.2020, 08:00
У меня тут мысль мелькнула, немного не по теме. А если текстовый параметр (поле в таблице) какой-то, который используется для поиска, сохранять в БД в виде bigint, то поиск по такому полю будет быстрее осуществляться? Если вместо фамилии я буду в БД сохранять фамилию в виде bigint (если цифр хватит), то поиск будет быстрее же?
Поиск какой требуется? Если по точному соответствию или по фываывф%, то с индексами все нормально будет. Чтобы не выдумывать всякое непонятное - проще поглядеть планы запросов. А по поводу сохранять фио в циферь. Вы что хеширование ручное решили сделать? А нафига? (ж
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
10.06.2020, 11:14
    #2210306
vad72
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
ну да, главное чтобы без коллизий. Я выше писал зачем, нужно "текстовое поле" засунуть в bigint.
...
Рейтинг: 0 / 0
10.06.2020, 15:33
    #2211055
eNose
Участник
[не активирован]
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
замена букв на цифры в MS SQL
Вадик, извини за вопрос.

Ты гуманитарий?
...
Рейтинг: 1 / 0
Нравится: Бояннизд02
10.06.2020, 15:35
    #2211070
kDn
kDnПривилегированный пользователь
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
g?oes to sleep
замена букв на цифры в MS SQL
vad72  10.06.2020, 11:14
ну да, главное чтобы без коллизий. Я выше писал зачем, нужно "текстовое поле" засунуть в bigint.
Ненадо нихрена никуда засовывать. И заодно не надо считать серверописателей полными баранами, которые без подсказки не знают как чего быстрее работать будет. Итог - ежели схему можно поменять убрав нафиг бигинт, но нужно поменять и забыть.
...
Дилинь Дилинь Дилинь 798413147632722479082280201[:frown][:grin2]
Рейтинг: 0 / 0
Форумы / Вопросы по IT / замена букв на цифры в MS SQL / 25 сообщений из 53, страница 1 из 3
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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