有一个表,如下:
a字段,b字段
qqq,101010
qqq,010101
www,010101
www,111000
eee,001010
如何写sql查询语句,做到分组,然后进行位或运算?b字段应该取什么数据类型?
结果要这样:
a字段,b字段
qqq,111111
www,111101
eee,001010
a字段,b字段
qqq,101010
qqq,010101
www,010101
www,111000
eee,001010
如何写sql查询语句,做到分组,然后进行位或运算?b字段应该取什么数据类型?
结果要这样:
a字段,b字段
qqq,111111
www,111101
eee,001010
3 | 5
表达式的计算结果为 7 (00000111)。0000001100000101-----------00000111--ReorderPoint 和 SafetyStockLevel 列执行“位或”运算。
ReorderPoint | SafetyStockLevel--如果 ReorderPoint 为 10,SafetyStockLevel 为 8,则表达式的计算结果为 10 (00001010)。0000101000001000-----------00001010
--详见联机丛书。
INSERT @T
SELECT 'qqq','101010' UNION ALL
SELECT 'qqq','010101' UNION ALL
SELECT 'www','010101' UNION ALL
SELECT 'www','111000' UNION ALL
SELECT 'eee','001010'
SELECT A,LTRIM(SUM(DISTINCT LEFT(B,1)*1))+
LTRIM(SUM(DISTINCT RIGHT(LEFT(B,2),1)*1))+
LTRIM(SUM(DISTINCT RIGHT(LEFT(B,3),1)*1))+
LTRIM(SUM(DISTINCT RIGHT(LEFT(B,4),1)*1))+
LTRIM(SUM(DISTINCT RIGHT(LEFT(B,5),1)*1))+
LTRIM(SUM(DISTINCT RIGHT(B,1)*1))
FROM @TGROUP BY A
(所影响的行数为 5 行)A
---- ------------------------------------------------------------------------
eee 001010
qqq 111111
www 111101(所影响的行数为 3 行)