求教:Sql里有没有聚合函数能够实现OR的功能?

carolbaby 2003-12-30 05:48:06
用法和SUM(),MAX()相同, 实现的功能是取数据集上该字段的“或”

如果没有,请问如何取?
...全文
102 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
carolbaby 2003-12-30
  • 打赏
  • 举报
回复
我想要聚合函数!!!
wzh1215 2003-12-30
  • 打赏
  • 举报
回复

create table #aa(id int,aa int,bb int)
insert #aa values(1,22,33)
insert #aa values(1,33,12)
insert #aa values(1,34,10)
select *, aa|bb 'aa or bb',aa&bb 'aa and bb' from #aa

----------------
id aa bb aa or bb aa and bb
----------- ----------- ----------- ----------- -----------
1 22 33 55 0
1 33 12 45 0
1 34 10 42 2

(3 row(s) affected)

shuiniu 2003-12-30
  • 打赏
  • 举报
回复
select 170|20|10
/*

-----------
190

(所影响的行数为 1 行)
*/
shuiniu 2003-12-30
  • 打赏
  • 举报
回复
|(按位 OR)
在 Transact-SQL 语句中,将两个给定的整型值转换为二进制表达式,对其执行按位逻辑或运算。

语法
expression | expression

参数
expression

是任何有效的 Microsoft® SQL Server™ 表达式(表达式必须由整数数据类型分类中的任何数据类型组成。expression 是一个经过处理并转换为二进制数字以便进行位运算的整数。

结果类型
如果输入值为 int,则返回 int;如果输入值为 smallint,则返回 smallint;或者如果输入值为 tinyint,则返回 tinyint。

注释
通过从两个表达式取对应的位,位运算符 | 在两个表达式之间执行按位逻辑或运算。如果在输入表达式中有一个位为 1 或者两个位均为 1(正在被解析的当前位),那么结果中的位被设置为 1;如果输入表达式中的两个位都不为 1,则结果中该位的值被设置为 0。

位运算符 | 要求有两个表达式,并且只可以用在具有整型数据类型分类的表达式上。

如果左右表达式的整型数据类型不同(例如,左边 expression 的数据类型是 smallint,右边 expression 的数据类型是 int),那么将较小的数据类型的参数转换为较大的数据类型。在该示例中,数据类型为 smallint 的 expression 被转换为 int 数据类型。

wzh1215 2003-12-30
  • 打赏
  • 举报
回复
select 1|20
select 1&3
wzh1215 2003-12-30
  • 打赏
  • 举报
回复
楼主是相做2进制的or,and吗!
carolbaby 2003-12-30
  • 打赏
  • 举报
回复
没找到现成的函数:(

对于该字段只放0,1的情况,好像可以
OR:用MAX()代替
AND:用AVG()代替

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧