powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена Translate
18 сообщений из 18, страница 1 из 1
Замена Translate
    #39763472
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Товарищи, приветствую

Подскажите пожалуйста, чем можно заменить функцию translate для того, чтобы переделать множество

data
-----------
SMITH800

В множество

name sal
------------------
SMITH 800

так как у меня SQL SERVER 2012, а данная функция только с 2017. Спасибо за внимание.
...
Рейтинг: 0 / 0
Замена Translate
    #39763481
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

TRANSLATE это "множественный" REPLACE, о чём вопрос про переделки "множеств"
...
Рейтинг: 0 / 0
Замена Translate
    #39763485
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

ну я просто не стал все копировать
DATA

SMITH800
ALLEN1600
WARD1250
JONES2975
MARTIN1250
BLAKE2850
CLARK2450
SCOTT3000
KING5000
TURNER1500
ADAMS1100
JAMES950
FORD3000
MILLER1300

данное множество мне необходимо переделать по примеру выше, в 2 отдельных столбца, по идее я все могу через REPLACE сделать?
...
Рейтинг: 0 / 0
Замена Translate
    #39763489
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

автор по примеру выше, в 2 отдельных столбца, по идее я все могу через REPLACE сделать?
нет, ни TRANSLATE ни REPLACE такого не делает
...
Рейтинг: 0 / 0
Замена Translate
    #39763493
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

ХМ, а посредством чего тогда решать?
...
Рейтинг: 0 / 0
Замена Translate
    #39763495
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaTaPaK,

ХМ, а посредством чего тогда решать?
определить правило по которому разделять.

хотя можно и REPLCAE 1. Заменить все цифры на '', 2. Заменить все буквы на '' или вырезать из общего результат первого. Это если слева буквы, справа цифры
...
Рейтинг: 0 / 0
Замена Translate
    #39763497
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,

хорошо, попробую, если получится -отпишусь
...
Рейтинг: 0 / 0
Замена Translate
    #39763500
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TaPaK,
ТИп данных varcahr, по сути задание не требует того, чтобы цифры были int в итогов значении
...
Рейтинг: 0 / 0
Замена Translate
    #39763501
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @t table (data varchar(100));

insert into @t (data)
values ('SMITH800'),
('ALLEN1600'),
('WARD1250'),
('JONES2975'),
('MARTIN1250'),
('BLAKE2850'),
('CLARK2450'),
('SCOTT3000'),
('KING5000'),
('TURNER1500'),
('ADAMS1100'),
('JAMES950'),
('FORD3000'),
('MILLER1300')

select 
	left(data, PATINDEX('%[0-9]%', data) - 1) as name, 
	substring(data, PATINDEX('%[0-9]%', data), len(data)) as number
from @t 
...
Рейтинг: 0 / 0
Замена Translate
    #39763506
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

благодарствую, но теперь прям не интересно стало, буду данный синтаксис разбирать, хотелось и самому попробовать.
...
Рейтинг: 0 / 0
Замена Translate
    #39763508
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это один из вариант решающий вашу задачу
...
Рейтинг: 0 / 0
Замена Translate
    #39763511
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

да, только думать над другим вариатом уже хочется меньше, теперь, для начала я разберу этот.
...
Рейтинг: 0 / 0
Замена Translate
    #39763538
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

Подскажите пожалуйста, что значит '%[0-9]%', ? Документация не совсем помогает с примером плана
SELECT PATINDEX('%en_ure%', 'please ensure the door is locked');
и результатом 8.
...
Рейтинг: 0 / 0
Замена Translate
    #39763539
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Замена Translate
    #39763545
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
dermama,

разобрался, считае количество символов до цифр, только выводит вместо нужных 5 , например 6, по сему -1 и указан.

SELECT PATINDEX('%[0-9]%', data) - 1
FROM data
...
Рейтинг: 0 / 0
Замена Translate
    #39763547
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, он выводит начальну. позицию найденного выражения в строке
...
Рейтинг: 0 / 0
Замена Translate
    #39763558
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Konst_One,

напоминает отдаленно REGEXP_REPLACE , для меня пока сложновато, буду внедряться
...
Рейтинг: 0 / 0
Замена Translate
    #39763642
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_One
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
declare @t table (data varchar(100));

insert into @t (data)
values ('SMITH800'),
('ALLEN1600'),
('WARD1250'),
('JONES2975'),
('MARTIN1250'),
('BLAKE2850'),
('CLARK2450'),
('SCOTT3000'),
('KING5000'),
('TURNER1500'),
('ADAMS1100'),
('JAMES950'),
('FORD3000'),
('MILLER1300')

select 
	left(data, PATINDEX('%[0-9]%', data) - 1) as name, 
	substring(data, PATINDEX('%[0-9]%', data), len(data)) as number
from @t 

Вместо SUBSTRING короче было бы STUFF
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Замена Translate
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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