条件SQL Select语句
我在下面有一张桌子条件SQL Select语句,sql,sql-server,Sql,Sql Server,我在下面有一张桌子 Name Product --------------------- Value 2002 HigherLimit * HigherLimit 2002 LowerLimit * 我需要一个select语句返回具有以下条件的distinct(名称) 如果产品为2002,则返回“2002”,否则返回“*” 以下是预期结果 Name Product --------------------- Value
Name Product
---------------------
Value 2002
HigherLimit *
HigherLimit 2002
LowerLimit *
我需要一个select语句返回具有以下条件的distinct(名称)
如果产品为2002,则返回“2002”,否则返回“*”
以下是预期结果
Name Product
---------------------
Value 2002
HigherLimit 2002
LowerLimit *
任何帮助都将不胜感激
谢谢
Niju由于
2002
的计算结果将大于*
,因此您可以简单地使用MAX()
聚合,按名称进行分组:
SELECT
Name,
MAX(Product) AS Product
FROM yourtable
/* WHERE Product IN ('2002', '*') -- if necessary */
GROUP BY Name
ORDER BY Product DESC
但是,如果实际表中的值不仅仅是2002
或*
,并且要返回2002值而不是最大值,请使用大小写来分隔所需的值(2002),并将所有其他值作为*
返回。MAX()
SELECT
Name,
/* Force *all* values not 2002 to be `*` */
MAX(CASE WHEN Product = '2002' THEN Product ELSE '*' END) AS Product
FROM yourtable
GROUP BY Name
ORDER BY Product DESC
是否有不同的名称和产品,如果没有,是否有任何名称有产品用途2002,如果没有用途*?您的数据库服务器是什么?您使用的是什么rdbms?MySQL?SQLServer?神谕等等…每个名称仅插入不同的名称、不同的产品。这是SQL 2008 R2