根据 SQL 管理器中的 IF 语句设置变量
Posted
技术标签:
【中文标题】根据 SQL 管理器中的 IF 语句设置变量【英文标题】:Set a variable based on an IF statement in SQL Manager 【发布时间】:2019-01-25 17:05:24 【问题描述】:我有一个名为 Ordhdr 的表,我想根据该表的 [status] 列创建一个查询。我有许多状态,我想将它们分组为 Won、Lost、Pending 以便于查看。如何设置我的声明,设置语句首先将当前状态“重命名”为WON
、LOST
或PENDING
,这样我就可以使用新名称显示我的查询结果。
Sample Data
Order 1, STatus is QteCall1 (Pending Status)
Order 2, Status is Converted (Won Status)
Order 3, STatus is Declined (Dead Status)
Order 4, Status is Waiting (Pending Status)
Order 5, Status is NOResponse (Dead Status)'
如何“重命名”当前状态以获得结果 显示计数为
1 韩元 2 待处理 2 死【问题讨论】:
【参考方案1】:这是你需要的吗?
SELECT CASE WHEN STATUS = 'Converted' THEN 'WON'
WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END AS NEW_NAME
--The above case expression is being used to compare and rename the values according to the desired match
,COUNT(*) AS COUNT
FROM Ordhdr
GROUP BY
CASE WHEN STATUS = 'Converted' THEN 'WON'
WHEN STATUS IN ('QteCall1','Waiting') THEN 'PENDING'
WHEN STATUS IN ('Declined', 'NOResponse ') THEN 'LOST' END
-- This second case expression is the same as the previous one, but it is required by the SQL standards to be in the GROUP BY section
Result from query.
【讨论】:
以上是关于根据 SQL 管理器中的 IF 语句设置变量的主要内容,如果未能解决你的问题,请参考以下文章
sql server 2008不用查询语句怎样查看新建的表的信息?像2000中的企业管理器中有个返回所有列一样
sql2008企业管理器中修改字段值报:将截断字符串或二进制数据。说字段长度不够的请绕开。
在调试python期间,Spyder在变量资源管理器中不显示类实例变量