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

Откуда:
Сообщений: 1424
Есть две выборки, результатом каждой выборки будет одна строка. Значения в этих строках только 0 или 1. Как мне к результатам этих выборок применить конъюнкцию, чтобы получился следующий результат:

select 'A конъюнкция', 0, 1, 1, 0, 0, 1, 0
Union
select 'B', 1, 0, 0, 1, 0, 1, 1
union
select 'Результат АxB', 0, 0, 0, 0, 0, 1, 0
26 июн 09, 13:46    [7347900]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
_ч_
Member

Откуда:
Сообщений: 1424
Забыл. Версия Microsoft SQL Server 2005 - 9.00.3054.00
26 июн 09, 13:50    [7347933]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22552
Битовые операторы (ядро СУБД)
См. также
"Другие ресурсы"
26 июн 09, 13:52    [7347939]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
&
26 июн 09, 13:53    [7347949]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
iap
&
WITH
 A(F1,F2,F3,F4,F5,F6,F7) AS(SELECT 0, 1, 1, 0, 0, 1, 0)
,B(F1,F2,F3,F4,F5,F6,F7) AS(SELECT 1, 0, 0, 1, 0, 1, 1)
SELECT A.F1&B.F1[F1],A.F2&B.F2[F2],A.F3&B.F3[F3],A.F4&B.F4[F4],A.F5&B.F5[F5],A.F6&B.F6[F6],A.F7&B.F7[F7]
FROM A CROSS JOIN B;
26 июн 09, 13:57    [7347983]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
_ч_
Member

Откуда:
Сообщений: 1424
Вопрос не в том, как обозначается конъюнкция, а в том как к результатам этих выборок применить конъюнкцию

Т.е. можно ли каким то образом применить конъюнкцию к двум строкам выборок?
26 июн 09, 13:58    [7347997]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
_ч_
Member

Откуда:
Сообщений: 1424
iap, то. Спасибо
26 июн 09, 13:59    [7348004]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
Хотя, это же можно и произведением сделать. Например, для произволбного количества записей
WITH A(F1,F2,F3,F4,F5,F6,F7) AS
(
 SELECT 0, 1, 1, 0, 0, 1, 0
 UNION ALL
 SELECT 1, 0, 0, 1, 0, 1, 1
)
SELECT
 MIN(F1)*EXP(SUM(LOG(ISNULL(NULLIF(F1,0),1))))[F1],
 MIN(F2)*EXP(SUM(LOG(ISNULL(NULLIF(F2,0),1))))[F2],
 MIN(F3)*EXP(SUM(LOG(ISNULL(NULLIF(F3,0),1))))[F3],
 MIN(F4)*EXP(SUM(LOG(ISNULL(NULLIF(F4,0),1))))[F4],
 MIN(F5)*EXP(SUM(LOG(ISNULL(NULLIF(F5,0),1))))[F5],
 MIN(F6)*EXP(SUM(LOG(ISNULL(NULLIF(F6,0),1))))[F6],
 MIN(F7)*EXP(SUM(LOG(ISNULL(NULLIF(F7,0),1))))[F7]
FROM A;
26 июн 09, 14:04    [7348044]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
_ч_
Member

Откуда:
Сообщений: 1424
iap, я думаю произведение мне не подойдет, т.к. вообще говоря я преобразую строки выборок так, чтобы в результате у меня на выходе были эл-ты:

~A1&B1, ~A2&B2 и т.д.
26 июн 09, 14:30    [7348221]     Ответить | Цитировать Сообщить модератору
 Re: Конъюнкция  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
_ч_
iap, я думаю произведение мне не подойдет, т.к. вообще говоря я преобразую строки выборок так, чтобы в результате у меня на выходе были эл-ты:

~A1&B1, ~A2&B2 и т.д.
Вот так, наверно?
~(A1&B1)
?
У оператора ~ очень высокий приоритет!
26 июн 09, 14:35    [7348269]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить