powered by simpleCommunicator - 2.0.39     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как быстро упаковать кучу bit в binary(1)?
10 сообщений из 10, страница 1 из 1
Как быстро упаковать кучу bit в binary(1)?
    #40129277
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)
...
Рейтинг: 0 / 0
Как быстро упаковать кучу bit в binary(1)?
    #40129291
Фотография 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
Как быстро упаковать кучу bit в binary(1)?
    #40129297
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
---
...
Рейтинг: 0 / 0
Как быстро упаковать кучу bit в binary(1)?
    #40129300
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Как быстро упаковать кучу bit в binary(1)?
    #40129302
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

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

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

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


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


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

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


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