红绿灯状态
1 - Red
2 - Yellow
3 - Green
由于这是一个确定性函数...
CREATE FUNCTION dbo.udf_StoplightStatusRed()
RETURNS TINYINT
WITH SCHEMABINDING
AS
RETURN CAST(1 as TINYINT)
END
这样做安全吗...
SELECT
[Status] = CASE StoplightStatusID WHEN dbo.udf_StoplightStatusRed() THEN 1 ELSE 0 END
FROM dbo.StoplightAudit
WHERE StopLightStatusID = dbo.udf_StoplightStatusRed()
我知道,查询本身没有多大意义。我只是想确保如果我这样做,我的函数不会针对每一行进行评估。
我需要加入许多其他表格以获取更多信息。最好先获取 CTE 中的所有审计 ID 并加入其中,还是因为这些功能是确定性的所以没关系?