Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.09.2016, 17:18   #1
ZAWUL00N
Новичок
Джуниор
 
Регистрация: 09.09.2016
Сообщений: 2
По умолчанию SQL Помогите пожалуйста с запросом!

Добрый день!
Есть строки вида
"111@mail.ru$#$описание сообщения 1"
"111@mail.ru$#$описание сообщения 2"
"222@mail.ru$#$описание сообщения 3"
Нужно составить запрос, который бы считал количество уникальных эл.адресов, т.е. до знаков $#$. (В данном случае 2).
На функции вида InStr и Substring_Index выдает ошибку, что таких нет.
на
COUNT(DISTINCT
(substring_index( [remarks] , '$' , 1)) )
пишет
'substring_index' is not a recognized built-in function name.
На InStr то же самое.
Кто-Нибудь знает как это без них сделать?
ZAWUL00N вне форума Ответить с цитированием
Старый 09.09.2016, 18:19   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

а база данных у вас чья?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 09.09.2016, 21:38   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

а если использовать вложенный запрос ?
Код:
select count(distinct xx) --считаем уже полученные (см. следующую строку)
from ( -- получаем ВСЕ строки которые надо считать
          select substring_index(remark, '$', 1) as xx
         from ....
       )
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 09.09.2016, 22:01   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

видимо не мускул, если не понимает. Для сиквела так можно
Код:
case when remarks like '%$%' then left(remarks,charindex('$',remarks)-1) else remarks end
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 09.09.2016 в 22:06.
Аватар вне форума Ответить с цитированием
Старый 12.09.2016, 10:37   #5
ZAWUL00N
Новичок
Джуниор
 
Регистрация: 09.09.2016
Сообщений: 2
По умолчанию

Все, получилось.
SELECT
COUNT(DISTINCT case when remarks like '%$%' then left(remarks,charindex('$',remarks)-1) else remarks end)

Спасибо всем!)
ZAWUL00N вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с SQL запросом базы данных Tormozz Помощь студентам 4 08.06.2016 14:06
Помогите с запросом MS SQL Goldcoding SQL, базы данных 5 04.01.2010 19:39
Помогите с SQL-запросом! lordaleksej БД в Delphi 2 03.12.2009 22:55
Помогите с запросом SQL пожалуйста Андрей79 SQL, базы данных 7 05.04.2009 01:08
Помогите с SQL запросом. Monoflextor БД в Delphi 12 29.04.2007 16:53