我将如何将其转换为用户定义的函数?另外,我知道有几种类型的 UDF……在这种情况下哪一种最好?感谢您的帮助。
SELECT TOP 10 ParkingSpotNumber
, count(*) as 'Usage'
FROM ParkingTransaction
GROUP BY ParkingSpotNumber
ORDER BY 'Usage' DESC
由于您返回的列不止一列并且您希望这是一个函数,因此您可以使用Table-Valued Function
:
create function Top_Parking_usage()
returns @ParkingCount table
(
ParkingSpotNumber int not null,
UsageCount int not null
)
as
BEGIN
INSERT INTO @ParkingCount(ParkingSpotNumber, UsageCount)
SELECT TOP 10 ParkingSpotNumber
, count(*) as 'Usage'
FROM ParkingTransaction
GROUP BY ParkingSpotNumber
ORDER BY 'Usage' DESC
RETURN
END;
GO
然后当你调用它时,你将使用:
select *
from dbo.Top_Parking_usage()
试试下面......它返回表格......
CREATE FUNCTION udf_GetParkingInfo()
RETURNS TABLE
AS
RETURN
(
SELECT TOP 10 ParkingSpotNumber
, count(*) as 'Usage'
FROM ParkingTransaction
GROUP BY ParkingSpotNumber
ORDER BY 'Usage' DESC
);
SELECT * from udf_GetParkingInfo()