Гость
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как быстро упаковать кучу bit в binary(1)? / 10 сообщений из 10, страница 1 из 1
25.01.2022, 14:00
    #40129277
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
Туплю.
Как нибудь проще, чем (+) можно?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Create table #t (b1 bit, b2 bit, b3 bit, b4 bit)

insert into #t values (0, 0, 1, 0), (1, 1, 0, 1), (1,1,0,0)

Select Cast(t.bb1 | t.bb2 | t.bb3 | t.bb4 as binary(1)) from
#t a
Cross apply (values
(Case when a.b1 = 1 then 1 else 0 End,
Case when a.b2 = 1 then 2 else 0 End,
Case when a.b3 = 1 then 4 else 0 End,
Case when a.b4 = 1 then 8 else 0 End)) t(bb1, bb2, bb3, bb4)
...
Рейтинг: 0 / 0
25.01.2022, 14:32
    #40129291
court
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
uaggster,

не знаю "проще/не проще", но букв меньше ))
Код: sql
1.
2.
3.
Select Cast(t.bb1 * a.b1 | t.bb2 * a.b2 | t.bb3 * a.b3 | t.bb4 * a.b4 as binary(1)) 
from #t a
cross join (values(1,2,4,8)) t(bb1, bb2, bb3, bb4)
...
Рейтинг: 0 / 0
25.01.2022, 14:48
    #40129297
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
---
...
Рейтинг: 0 / 0
25.01.2022, 14:49
    #40129300
aleks222
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
aleks222
uaggster
Туплю.
Как нибудь проще, чем (+) можно?
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Create table #t (b1 bit, b2 bit, b3 bit, b4 bit)

insert into #t values (0, 0, 1, 0), (1, 1, 0, 1), (1,1,0,0)

Select Cast(t.bb1 | t.bb2 | t.bb3 | t.bb4 as binary(1)) from
#t a
Cross apply (values
(Case when a.b1 = 1 then 1 else 0 End,
Case when a.b2 = 1 then 2 else 0 End,
Case when a.b3 = 1 then 4 else 0 End,
Case when a.b4 = 1 then 8 else 0 End)) t(bb1, bb2, bb3, bb4)



Что за бред?
Код: sql
1.
Select cast( a.b1 | a.b2*2 | a.b2*4 | a.b4*8 as binary(1) ) from #t as a

...
Рейтинг: 0 / 0
25.01.2022, 15:11
    #40129302
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
uaggster,

а смысл?
...
Рейтинг: 0 / 0
25.01.2022, 15:19
    #40129304
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
court
uaggster,

не знаю "проще/не проще", но букв меньше ))
Код: sql
1.
2.
3.
Select Cast(t.bb1 * a.b1 | t.bb2 * a.b2 | t.bb3 * a.b3 | t.bb4 * a.b4 as binary(1)) 
from #t a
cross join (values(1,2,4,8)) t(bb1, bb2, bb3, bb4)


Ага, спасибо, самое то.
...
Рейтинг: 0 / 0
25.01.2022, 15:40
    #40129312
invm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
Код: sql
1.
select cast(b1 | b2 * 2 | b3 * 4 | b4 * 8 as binary(1)) from #t
...
Рейтинг: 0 / 0
26.01.2022, 01:31
    #40129450
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
uaggster,

так зачем его упаковывать? Так и не понял.
...
Рейтинг: 0 / 0
26.01.2022, 11:10
    #40129513
Wlr-l
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
Владислав Колосов

так зачем его упаковывать? Так и не понял.


Осознать, что SQL Server может использоваться не только для расчета остатков.
...
Рейтинг: 0 / 0
26.01.2022, 11:24
    #40129525
uaggster
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как быстро упаковать кучу bit в binary(1)?
invm
Код: sql
1.
select cast(b1 | b2 * 2 | b3 * 4 | b4 * 8 as binary(1)) from #t


Блин, вот я тупой :-)
IsNull правда, кое - где добавить, т.к., как выяснилось, что некоторые bit-ы там nullable.

Владислав Колосовтак зачем его упаковывать? Так и не понял.
Потому что в одной структуре хранится в виде россыпи битов, а в другой в виде двубайтной структуры.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как быстро упаковать кучу bit в binary(1)? / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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