数据库查询结果的动态排序(5)
2007-11-11 04:05:35 来源:WEB开发网核心提示:五、用户定义函数 如果你使用的是sql server(WINDOWS平台上强大的数据库平台) 2000,想要编写一个用户定义的函数(UDF),数据库查询结果的动态排序(5),这个用户定义函数接受列的名字或编号为参数、返回排序的结果集,Listing 10显示了大多数程序员当成第一选择的方法
五、用户定义函数
如果你使用的是sql server(WINDOWS平台上强大的数据库平台) 2000,想要编写一个用户定义的函数(UDF),这个用户定义函数接受列的名字或编号为参数、返回排序的结果集,Listing 10显示了大多数程序员当成第一选择的方法。
【Listing 10:列名字作为参数,使用UDF】
CREATE FUNCTION ufn_GetSortedShippers
(
@ColName AS sysname
)
RETURNS TABLE
AS
RETURN
SELECT *
FROM Shippers
ORDER BY
CASE @ColName
WHEN 'ShipperID' THEN CASE SIGN(ShipperID)
WHEN -1 THEN '-'
WHEN 0 THEN '+'
WHEN 1 THEN '+'
ELSE NULL
END +
RIGHT(REPLICATE('0', 10) +
CAST(ABS(ShipperID) AS
varchar(10)), 10)
WHEN 'CompanyName' THEN CompanyName
WHEN 'Phone' THEN Phone
ELSE NULL
END
如果你使用的是sql server(WINDOWS平台上强大的数据库平台) 2000,想要编写一个用户定义的函数(UDF),这个用户定义函数接受列的名字或编号为参数、返回排序的结果集,Listing 10显示了大多数程序员当成第一选择的方法。
【Listing 10:列名字作为参数,使用UDF】
CREATE FUNCTION ufn_GetSortedShippers
(
@ColName AS sysname
)
RETURNS TABLE
AS
RETURN
SELECT *
FROM Shippers
ORDER BY
CASE @ColName
WHEN 'ShipperID' THEN CASE SIGN(ShipperID)
WHEN -1 THEN '-'
WHEN 0 THEN '+'
WHEN 1 THEN '+'
ELSE NULL
END +
RIGHT(REPLICATE('0', 10) +
CAST(ABS(ShipperID) AS
varchar(10)), 10)
WHEN 'CompanyName' THEN CompanyName
WHEN 'Phone' THEN Phone
ELSE NULL
END
更多精彩
赞助商链接