sql - 数据库查询。如何在单行上捕获 'mixed' 状态

标签 sql database perl oracle

我有一个数据库查询...

select foo, bar, status 
    from mytable 
    where bar in (bar1, bar2, bar3);

status 是与 foo-bar 对关联的状态。 GUI 显示将为每个 foo 显示 1 行,如果该 foo 的所有 bar1、bar2、bar3 状态均为 1,则应显示一个选中的复选框。如果该 foo 的状态值,则应显示一个未选中的复选框bar1、bar2 和 bar3 均为零。如果对于给定的 foo,不同的条具有不同的状态,我需要显示一些其他标记(比如问号。)

我的 sql 知识不足以完成这项任务。这可以在sql中完成吗?它在 Oracle 中,如果这有所作为的话。我在想我可能必须将它吸收到 perl 中并检查那里的条件,但我对这个想法不满意。

最佳答案

在 T-SQL 中我会这样做:

create table mytable (foo nvarchar(128), bar nvarchar(128), status int)
go
select foo, (MAX(status) + MIN(status)) as status 
from mytable 
group by foo

然后在客户端应用程序中,如果所有未选中,则结果状态值将为 0,如果某些已选中,则为 1,如果全部选中,则为 2

关于sql - 数据库查询。如何在单行上捕获 'mixed' 状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6258055/

相关文章:

.net - SQL 查询中的转义字符

sql - 为什么使用 phone = N'123 4' slower than phone = ' 1234' 查询?

php - MySQL 加入,即使没有匹配... Laravel

perl - 如何在 Perl 中更改 Devel::Cover 的 CSS?

perl - 如何在 Perl 中将多个日志文件视为一个虚拟文件?

php - 如何使用 php 将 MySQL 数据类型名称转换为正则表达式?

php - Magento - 待付款时标记为已使用的单张优惠券

sql-server - 恢复数据库

php - WP API 返回无效的用户 ID

xml - 在 Perl 中构建 XML 文件 : Relationship between createAttribute and addChild