【发布时间】:2020-05-04 10:40:54
【问题描述】:
我有一个表,其中包含带有测量值的行。对于同一个批次 id,可以指定多个度量。我想在以下条件下得到正确的值:
- 如果给定批次只有一行,则度量有效
- 如果有多行相同类型,则度量无效,返回的类型应为“无效”,值 = 0
- 如果有不止一行不同类型(一个“已获得”和一个“已验证”),则返回的行必须是“已验证”行
样本数据:
create table measures (
batch int,
type varchar(24),
value int
);
insert into measures select 01,'Verified',10;
insert into measures select 02,'Acquired',34;
insert into measures select 03,'Verified',22;
insert into measures select 03,'Verified',24;
insert into measures select 04,'Verified',32;
insert into measures select 04,'Acquired',34;
insert into measures select 05,'Acquired',42;
insert into measures select 05,'Acquired',44;
样本输出:
01 Verified 10
02 Acquired 34
03 Invalid 0
04 Verified 32
05 Invalid 0
【问题讨论】:
-
你的第一个条件似乎与其他两个条件有关。
-
这是一种非常奇怪的方式来编写 INSERT 语句。 VALUES 子句有什么问题?
-
您使用的是哪个DBMS 产品? “SQL”只是一种查询语言,而不是特定数据库产品的名称。请为您正在使用的数据库产品添加tag。 Why should I tag my DBMS
-
db引擎是SQL SERVER,我已经加了tag。
标签: sql sql-server select duplicates