Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как написать условие запроса.  [new]
ИнтересующийсяСКЛ
Guest
Как для всех ненулевых колонок проверить равенство их значений.

(NULL,2,2,NULL) = Да
(NULL,2,1,2,NULL) = Нет
23 окт 13, 11:10    [15019010]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
Glory
Member

Откуда:
Сообщений: 104751
UNPIVOT
GROUP BY COUNT(DISTINCT f1) = COUNT(f1)
23 окт 13, 11:14    [15019056]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
Shakill
Member

Откуда: мск
Сообщений: 1882
ИнтересующийсяСКЛ, надо развернуть их в строки с одним столбцом и проверить MIN() = MAX()
23 окт 13, 11:17    [15019080]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
ИнтересующийсяСКЛ
Guest
Glory, спасибо наверное так и сделаю :)
23 окт 13, 11:17    [15019089]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
qwerty112
Guest
;with cte as
(
select null as f1, 2 as f2, 2 as f3, null as f4
union all 
select null as f1, 3 as f2, 2 as f3, null as f4
union all 
select null as f1, null as f2, null as f3, null as f4
)

select 
	case when isnull(f1, 0xFFFFFFFF) & isnull(f2, 0xFFFFFFFF) & isnull(f3, 0xFFFFFFFF) & isnull(f4, 0xFFFFFFFF) = isnull(f1,isnull(f2,isnull(f3,isnull(f4,null)))) then 1 else 0 end
from cte

-----------
1
0
0
23 окт 13, 11:24    [15019177]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
qwerty112
Guest
qwerty112
+
;with cte as
(
select null as f1, 2 as f2, 2 as f3, null as f4
union all 
select null as f1, 3 as f2, 2 as f3, null as f4
union all 
select null as f1, null as f2, null as f3, null as f4
)

select 
	case when isnull(f1, 0xFFFFFFFF) & isnull(f2, 0xFFFFFFFF) & isnull(f3, 0xFFFFFFFF) & isnull(f4, 0xFFFFFFFF) = isnull(f1,isnull(f2,isnull(f3,isnull(f4,null)))) then 1 else 0 end
from cte


извиняюсь, фигню написал
на таком
select null as f1, 4 as f2, 4 as f3, 7 as f4

результат не правильный ... (
23 окт 13, 11:34    [15019295]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
ИнтересующийсяСКЛ
Guest
2qwerty112, Классно! А где гарантия что f-итое не будет равно 0xFFFFFFFF ?
23 окт 13, 11:34    [15019299]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
qwerty112
Guest
вот, так, вроде правильно ...
;with cte as
(
select null as f1, 4 as f2, 4 as f3, 7 as f4
union all 
select 2 as f1, 2 as f2, 2 as f3, null as f4
union all 
select null as f1, null as f2, null as f3, null as f4
)

select 
	case when 
		isnull(f1, 0) | isnull(f2, 0) | isnull(f3, 0) | isnull(f4, 0) = 
		isnull(f1, 0xFFFFFFFF) & isnull(f2, 0xFFFFFFFF) & isnull(f3, 0xFFFFFFFF) & isnull(f4, 0xFFFFFFFF) 
			then 1 else 0 
	end
from cte

-----------
0
1
0
23 окт 13, 11:38    [15019322]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
Для таблицы T с полями F1,F2,F2,....,Fn
SELECT ISNULL((SELECT 'Да' FROM(VALUES(F1),(F2),(F2),....,(Fn)) T(F) HAVING COUNT(DISTINCT F)=1),'Нет') FROM T;
23 окт 13, 11:59    [15019517]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
ИнтересующийсяСКЛ
Guest
Что такое T(F) таблицу я табличное что то ? Где про такое можно почитать ?
23 окт 13, 12:35    [15019886]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
iap
Member

Откуда: Москва
Сообщений: 47052
ИнтересующийсяСКЛ
Что такое T(F) таблицу я табличное что то ? Где про такое можно почитать ?
T - алиас производной таблицы (конструктор значений VALUES() в данном случае).
F - алиас поля производной таблицы.
http://msdn.microsoft.com/ru-ru/library/ms177634(v=sql.100).aspx
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
23 окт 13, 12:49    [15019986]     Ответить | Цитировать Сообщить модератору
 Re: Как написать условие запроса.  [new]
ИнтересующийсяСКЛ
Guest
О как :) Спасибо, iap !
23 окт 13, 13:03    [15020108]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить