Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
ИнтересующийсяСКЛ
Guest |
Как для всех ненулевых колонок проверить равенство их значений. (NULL,2,2,NULL) = Да (NULL,2,1,2,NULL) = Нет |
23 окт 13, 11:10 [15019010] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104751 |
UNPIVOT GROUP BY COUNT(DISTINCT f1) = COUNT(f1) |
23 окт 13, 11:14 [15019056] Ответить | Цитировать Сообщить модератору |
Shakill Member Откуда: мск Сообщений: 1882 |
ИнтересующийсяСКЛ, надо развернуть их в строки с одним столбцом и проверить MIN() = MAX() |
23 окт 13, 11:17 [15019080] Ответить | Цитировать Сообщить модератору |
ИнтересующийсяСКЛ
Guest |
Glory, спасибо наверное так и сделаю :) |
23 окт 13, 11:17 [15019089] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
qwerty112
Guest |
извиняюсь, фигню написал на таком select null as f1, 4 as f2, 4 as f3, 7 as f4 результат не правильный ... ( |
|||
23 окт 13, 11:34 [15019295] Ответить | Цитировать Сообщить модератору |
ИнтересующийсяСКЛ
Guest |
2qwerty112, Классно! А где гарантия что f-итое не будет равно 0xFFFFFFFF ? |
23 окт 13, 11:34 [15019299] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
Для таблицы T с полями F1,F2,F2,....,FnSELECT ISNULL((SELECT 'Да' FROM(VALUES(F1),(F2),(F2),....,(Fn)) T(F) HAVING COUNT(DISTINCT F)=1),'Нет') FROM T; |
23 окт 13, 11:59 [15019517] Ответить | Цитировать Сообщить модератору |
ИнтересующийсяСКЛ
Guest |
Что такое T(F) таблицу я табличное что то ? Где про такое можно почитать ? |
23 окт 13, 12:35 [15019886] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47052 |
F - алиас поля производной таблицы.
|
||||
23 окт 13, 12:49 [15019986] Ответить | Цитировать Сообщить модератору |
ИнтересующийсяСКЛ
Guest |
О как :) Спасибо, iap ! |
23 окт 13, 13:03 [15020108] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |