gpt4 book ai didi

sql - 如何在同一个 SQL 表中的两行之间执行按位或运算?

转载 作者:行者123 更新时间:2023-12-04 23:46:19 24 4
gpt4 key购买 nike

我有一个结构类似于以下的 SQL 表:

  Name     Value
(varchar) (bit)
__________________
Val1 1
Val2 1
Val3 0
Val4 0
Val1 0
Val2 0
Val3 0
Val4 1

所以基本上,我有两个相同行的实例,但具有不同的位值。我想从这个表中检索不同的行,位值被 OR'ed。因此,对于给定的示例,结果将如下所示:
Name    Value
Val1      1    (1 | 0)
Val2 1 (1 | 0)
Val3 0 (0 | 0)
Val4 1 (0 | 1)

这能实现吗?
我在 Microsoft SQL Server 2012 中工作。感谢任何形式的帮助。如果需要进一步说明,请告诉我。

最佳答案

观察到“按位或”与聚合函数具有相同的功能MAX (假设所有输入为 0 或 1,如果任何输入为 1,则结果为 1,否则为 0)并考虑到我们无法直接聚合 bit 的事实。 ,这似乎有效:

declare @t table (Name varchar(17) not null,Value bit not null)
insert into @t(Name,Value) values
('Val1',1),
('Val2',1),
('Val3',0),
('Val4',0),
('Val1',0),
('Val2',0),
('Val3',0),
('Val4',1)

select Name,CONVERT(bit,MAX(CONVERT(int,Value))) as Value
from @t group by Name

关于sql - 如何在同一个 SQL 表中的两行之间执行按位或运算?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34631322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com