Sql server SQL用户定义函数带大小写-请对其进行细化
你能建议我改进一下下面的问题吗Sql server SQL用户定义函数带大小写-请对其进行细化,sql-server,sql-server-2005,Sql Server,Sql Server 2005,你能建议我改进一下下面的问题吗 ALTER FUNCTION GetTemplate_Lookup_id(@pid int) RETURNS INT AS BEGIN DECLARE @Return int SELECT @Return= CASE @pid -- SOME OTHER Comment WHEN 208 THEN 4 WHEN 283 THEN 4 WHEN 402 THEN 4 WHEN
ALTER FUNCTION GetTemplate_Lookup_id(@pid int)
RETURNS INT
AS
BEGIN
DECLARE @Return int
SELECT @Return= CASE @pid
-- SOME OTHER Comment
WHEN 208 THEN 4
WHEN 283 THEN 4
WHEN 402 THEN 4
WHEN 42 THEN 4
--SOME OTHER Comment
WHEN 211 THEN 3
WHEN 286 THEN 3
WHEN 399 THEN 3
WHEN 45 THEN 3
--SOME OTHER Comment
WHEN 209 THEN 1
WHEN 284 THEN 1
WHEN 397 THEN 1
WHEN 43 THEN 1
--SOME Other Comment
WHEN 210 THEN 2
WHEN 285 THEN 2
WHEN 398 THEN 2
WHEN 44 THEN 2
ELSE 0
END
RETURN @Return
END
你不能用IN来把事情弄清楚吗
...
SELECT @Return= CASE
WHEN @pid IN (208, 283, 402, 42) THEN 4
WHEN @pid IN (211, 286, 399, 45) THEN 3
...
您是否遇到性能问题?你有什么问题?在为每个类别设置的这些数字下是否有一些逻辑?也许你可以通过按位应用一些掩码来测试一个值,或者所有的数字都是幻数?也许你还没见过面。与堆栈溢出相比,它通常更适合于回答有关代码优化的问题。
...
SELECT @Return= CASE
WHEN @pid IN (208, 283, 402, 42) THEN 4
WHEN @pid IN (211, 286, 399, 45) THEN 3
...