Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как одним запросом сделать такую выборку / 15 сообщений из 15, страница 1 из 1
05.07.2018, 12:32
    #39669977
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
День добрый, мой сниппет здесь
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
create table t1(id int, name varchar(10), ssn int)
create table t1_exclusive(id int)
insert into t1(id,name,ssn) values 
 (1,'A',111)
,(2,'B',222)
,(3,'C',111)
,(4,'D',333)
,(5,'E',444)
,(6,'F',555)
,(7,'G',222)
,(8,'H',777)
,(9,'I',888)
,(10,'J',999)

insert into t1_exclusive(id) values(2)



Теперь select с where t1.ssn=222 должен вернуть:

id name ssn
2 B 222

с where t1.ssn=111 должен вернуть:

id name ssn
1 А 111
3 С 111

А без фильтрации по ssn должен вернуть все записи из t1. Как такое сделать одним запросом (можно с подзапросами)?
...
Рейтинг: 0 / 0
05.07.2018, 12:46
    #39669982
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Blackmore,

тут
...
Рейтинг: 0 / 0
05.07.2018, 12:57
    #39669987
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
А по-моему так
...
Рейтинг: 0 / 0
05.07.2018, 13:06
    #39669992
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Не учел запрос по всем SSN - нужно так
...
Рейтинг: 0 / 0
05.07.2018, 13:07
    #39669994
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Kopelly,

В чем тайный смысл использования SIGN, если в дальнейшем всё равно проверяете лишь на IS [not] NULL ?
...
Рейтинг: 0 / 0
05.07.2018, 13:21
    #39670004
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Щукина Анна,

Функционально никакого - просто захотель чтобы было именно "1"
...
Рейтинг: 0 / 0
05.07.2018, 13:22
    #39670007
Kopelly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
... как флаг эксклюзивности данного этого, или наличия эксклюзивного id по данному ssn
...
Рейтинг: 0 / 0
05.07.2018, 14:35
    #39670057
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Kopelly,

Спасибо, то что надо. Но это было для MSSQL, а сейчас от меня хотят такого же, но на Informix.
...
Рейтинг: 0 / 0
05.07.2018, 14:42
    #39670066
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
BlackmoreKopelly,

Спасибо, то что надо. Но это было для MSSQL, а сейчас от меня хотят такого же, но на Informix.
Почему бы тогда не задать вопрос а разделе по Informix???
...
Рейтинг: 0 / 0
05.07.2018, 14:54
    #39670081
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
alexeyvg,

Уже задан :) Просто я тренировался с запросом на MSSQL, а потом меня "обрадовали" уточнением целевого сервера.
...
Рейтинг: 0 / 0
05.07.2018, 15:54
    #39670143
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Blackmoreа потом меня "обрадовали" уточнением целевого сервера.Однако :-)
...
Рейтинг: 0 / 0
05.07.2018, 18:31
    #39670237
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Blackmore,

А информикс у вас «какой системы»?
Если мне память не изменяет, то с версии 12.10 аналитические (оконные - в терминологии MS SQL Server-а) функции поддерживаются в объеме не меньшем, чем у скуль-сервера.
В доке читать про OLAP ANALYTIC SQL FUNCTIONS
...
Рейтинг: 0 / 0
06.07.2018, 10:44
    #39670523
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Щукина Анна,

Да, Informix 12
...
Рейтинг: 0 / 0
06.07.2018, 10:45
    #39670524
Blackmore
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
Щукина Анна,

Только я не совсем понял про "оконные функции". В примере для MSSQL фигурирует CTE.
...
Рейтинг: 0 / 0
06.07.2018, 11:34
    #39670581
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как одним запросом сделать такую выборку
BlackmoreЩукина Анна,

Только я не совсем понял про "оконные функции". В примере для MSSQL фигурирует CTE.в данном случае СТЕ - не более, чем "синтаксический сахар" и вполне себе заменяется на derived table:

select bla-bla-bla from (тут запрос из СТЕ) as DT
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как одним запросом сделать такую выборку / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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