条件内部计数函数使用案例在Sql Server中

时间:2014-02-26 15:22:50

标签: sql-server

我有一个表有两列名为OrderId和OrderType

的表
OrderId OrderType
------- ---------
1       Drawer
2       Pickup
3       Delivery
4       Delivery
5       Drawer

在我的存储过程中,我想传递OrderType的参数,该参数只会在匹配的OrderType列数据上返回结果,即如果我传递参数'Drawer'那么它应该返回OrderType列的计数OrderType列数据为“抽屉”等等。

如何使用Count

执行此操作

目前我在做:

select @tempvar1=case @tempvar
when 'Drawer'
Then Count(CASE_TABLE.OrderType) --What Should i put here to get desired result?
end
select @tempvar1

我不想计算整个列,而只需要匹配OrderType的计数。

2 个答案:

答案 0 :(得分:1)

我是这样的:

DECLARE @argument VARCHAR(9) = 'Drawer'

SELECT
  OrderType,
  COUNT(OrderType) AS [Count]
FROM
  [Order]
WHERE
  OrderType = @argument
GROUP BY
  OrderType

<强>结果

OrderType Count
--------- -----
Drawer    2

您可以在SqlFiddle here进行测试。

答案 1 :(得分:0)

调用SP: -

Exec GetOrderType 'Drawer'

SP: -

CREATE PROCEDURE GetOrderType
     @OrderType nvarchar(50)
AS
BEGIN
    SET NOCOUNT ON;
    SELECT 
        COUNT(*) 
    FROM
        your_table_name
    WHERE
        OrderType = @OrderType
    GROUP BY
        OrderType

END
GO