我有一个表有两列名为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
的计数。
答案 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