![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 06.08.2011
Сообщений: 76
|
![]()
Подскажите пожалуйста, как с помощью запроса разделить (при выборке) столбец таблицы?
Например столбец: ___________________ Описание | ___________________ 123 ЗП qwe 345r43ЗПd, wer3rЗП 2423f3f - разделитель "ЗП" , в результате должно получиться: ___________________ ___________________ Описание1 | Описание2 | ___________________ ___________________ 123 |ЗП qwe 345r43 |ЗПd, wer3r |ЗП 2423f3f Не понимаю как это сделать(. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Для MS SQL будет выглядеть примерно так
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 13.01.2012 в 09:51. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 06.08.2011
Сообщений: 76
|
![]()
Извините пожалуйста, я просто не совсем понимаю как это должно работать... У мене вообще ошибка - From - не найдено там где оно ожидалось ...
Вот если таблица как в скриншоте, как воспроизвести - "после ЗП (включая и его) или NULL если не найдено CAST((CASE WHEN CHARINDEX('ЗП',Pole)>0 THEN RIGHT(Pole,LEN(Pole)-CHARINDEX('ЗП',Pole)+1) ELSE NULL END) AS varchar(20)) AS AfterText," ? |
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Что-то мне кажется, что вместо Pole нужно вставить имя вашей колонки, вместо Table1 - имя вашей таблицы. И за синтаксисом внимательно проследить, скорее всего запятую потеряли или лишняя. Комментарий убрать
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 06.08.2011
Сообщений: 76
|
![]() Цитата:
Select CAST((CASE WHEN CHARINDEX('ЗП', 1PO)>0 THEN RIGHT(1PO,LEN(1PO)-CHARINDEX('ЗП',1PO)+1) ELSE NULL END) AS varchar(20)) AfterText, 1PO from Lyb4eg; Ошибка - "Отсутствует правая кнопка" |
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Да не кнопка, а скобка. Со скобками все в порядке, а вот ораклу что-то не нравится. Попробуйте вместо CHARINDEX использовать INSTR, вместо LEFT и RIGHT - SUBSTR. Параметры естественно по другому у этих функций
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 06.08.2011
Сообщений: 76
|
![]()
Ночью уже не соображал, до скобка... Не могу заменить RIGHT, LEN, CHARINDEX - эти функции не поддерживаются plsql(
|
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
RIGHT и CHARINDEX в #6 написано чем заменить, для LEN - LENGTH. Google рулит
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
#9 | |
Пользователь
Регистрация: 06.08.2011
Сообщений: 76
|
![]() Цитата:
Извините, неправильно выразился. Если сделать замену как Вы сказали, то запрос будет работать неправильно... Или я неправильно делаю замену?... Select CAST((CASE WHEN INSTR('ЗП', PO)>0 THEN SUBSTR(PO,LENGTH(PO)-INSTR('ЗП',PO)+1) ELSE NULL END) AS varchar(20)) AfterText, PO from Lyb4eg; AfterText | PO (null) 123 ЗП qwe (null) 345r43ЗПd, (null) wer3rЗП 2423f3f |
|
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
А справку по этим функциям слабо глянуть? Не так, и INSTR, и SUBSTR
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Матрица, вставка столбца после столбца с max элементом | Phelps | Общие вопросы C/C++ | 2 | 24.03.2011 17:15 |
Сумма из одного столбца с числами в зависимости от интервала дат из другого столбца | Severny | Microsoft Office Excel | 10 | 14.03.2011 10:13 |
Удаление строк столбца совпадающих со строками другого столбца | ShamanGood | Microsoft Office Excel | 23 | 18.09.2010 09:26 |
импорт столбца | silatal | Microsoft Office Access | 3 | 22.10.2008 15:25 |
В прямоугольной матрице переставить столбцы так, чтобы сумма элементов столбца росла от первого столбца | Aleo13 | Помощь студентам | 5 | 15.10.2008 18:34 |