如何计算SQL Server存储过程中的选定数目

时间:2018-10-26 08:19:31

标签: sql sql-server

我也希望使用以下SQL Server存储过程来获取记录。有人可以让我知道我如何重写以下过程吗?

    @PapCod AS VARCHAR(3)
AS
BEGIN
    SET NOCOUNT OFF;

    SELECT 
        RTRIM(SA_ArticalCode) AS SupCode,
        RTRIM(SA_ArticalName) AS SupName
    FROM 
        Correspondent_Staff_Atricals
    WHERE 
        SA_PapCode = RTRIM(@PapCod)
END

3 个答案:

答案 0 :(得分:2)

使用count(*)over()

SELECT 
  RTRIM(SA_ArticalCode) AS SupCode,
  RTRIM(SA_ArticalName) AS SupName,
  count(*) over() [count]
FROM 
  Correspondent_Staff_Atricals
WHERE 
  SA_PapCode = @PapCod -- no need to rtrim, the rows will be found anyway

答案 1 :(得分:1)

您可以使用COUNT功能。

SELECT 
    COUNT(*)
FROM 
    Correspondent_Staff_Atricals
WHERE 
    SA_PapCode = RTRIM(@PapCod)

答案 2 :(得分:0)

您可以使用Union ALL在计算行数的位置附加一行:

SELECT RTRIM(SA_ArticalCode) as SupCode,
   RTRIM(SA_ArticalName) as SupName
   FROM Correspondent_Staff_Atricals
        WHERE SA_PapCode = RTRIM(@PapCod)
UNION ALL
SELECT 'RowsCount', COUNT(1)
FROM Correspondent_Staff_Atricals
        WHERE SA_PapCode = RTRIM(@PapCod)