Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
Роман86 Member Откуда: Сообщений: 32 |
Добрый день! Необходимо помощь с запросом, а точнее с условием where Запросом из нескольких таблиц получил выборку примерно такую: ID | date | QWE _____|_______________|_____ 2 | 27.08.2009 | 3 2 | 26.11.2009 | NULL 2 | 02.02.2010 | NULL 2 | 28.04.2010 | NULL 1 | 01.08.2011 | 4 1 | 07.03.2011 | Null 456 | 28.04.2010 | 3 456 | 30.04.2010 | Null 456 | 31.04.2010 | Null Необходимо отсюда выбрать по QWE = 3. Подскажите, как сделать такое условие чтоб в результат также попадали и NULLы, т.е.: ID | date | QWE _____|____________|_________ 2 |27.08.2009 | 3 2 |26.11.2009 | NULL 2 |02.02.2010 | NULL 2 |28.04.2010 | NULL 456 |28.04.2010 | 3 456 |30.04.2010 | Null 456 |31.04.2010 | Null |
10 окт 12, 22:21 [13299274] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
where QWE =3 or QWE IS NULL |
10 окт 12, 22:24 [13299289] Ответить | Цитировать Сообщить модератору |
Роман86 Member Откуда: Сообщений: 32 |
Maxx, нет, так не пойдет, потому что NULL тогда все возьмутся, а мне нужно конкретно по определенному ID. В этом и проблема. |
10 окт 12, 22:49 [13299396] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
КЛЁВА
ТЕСТ declare @t table (i int , x int) insert into @t (i,x ) values (1, NULL), (2, NULL),(1,3),(2,3),(1,4) select * from @t where x =3 or x is null Че вам конкретно то надо ? А то вы в 2х постах путаетесь |
||||
10 окт 12, 22:53 [13299408] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
так надо ? Или как ? |
||
10 окт 12, 22:57 [13299426] Ответить | Цитировать Сообщить модератору |
Роман86 Member Откуда: Сообщений: 32 |
Maxx,declare @t table (i int , x int) insert into @t (i,x ) values (1, NULL), (2, NULL),(1,3),(2,3),(1,4),(4,4),(4,null),(5,null), (5,4) select * from @t where x =3 or x is null Если так, то в результате появляются лишние ID 4 и 5 с NULL-ами. Не подскажете как их убрать? |
10 окт 12, 23:16 [13299502] Ответить | Цитировать Сообщить модератору |
Роман86 Member Откуда: Сообщений: 32 |
declare @t table (i int , x int) insert into @t (i,x ) values (1, NULL), (2, NULL),(1,3),(2,3),(1,4),(4,4),(4,null),(5,null), (5,4) select * from @t where x =3 or x is null Sorry (1,4) случайно поставил в предыдущем посте. Такого быть не может. Т.к. у I=1 уже есть X=3 |
11 окт 12, 00:23 [13299729] Ответить | Цитировать Сообщить модератору |
Maxx Member [скрыт] Откуда: Сообщений: 24290 |
Роман86, а чем предидуший пост не угодил,он твроде и решает вашу задачу как я понял |
11 окт 12, 01:00 [13299840] Ответить | Цитировать Сообщить модератору |
tetxx Member Откуда: Сообщений: 297 |
Так пойдет?declare @t table (i int , x int) insert into @t (i,x ) values (1, NULL), (2, NULL),(1,3),(2,3),(1,4),(4,4),(4,null),(5,null), (5,4) select i,x from ( select *,MAX(x)over(partition by i) chk from @t where x = 3 or x is null ) t where chk is not null |
11 окт 12, 02:11 [13299925] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |