我有一个函数目前使用 3 个参数:
CREATE FUNCTION dbo.RatesReport (@StartTapeDate DATE, @StartFcbVersionId int, @StartSvbVersionId int)
SELECT *
FROM dbo.DataTapes t
WHERE t.TapeDate = @StartTapeDate AND t.VersionId IN(@StartFcbVersionId, @StartSvbVersionId)
我想添加一个附加参数 (@LoanType int),进一步划分数据,但需要导出。CASE
WHEN t.SecId LIKE 'CD_%' THEN 1 ELSE 2
因此我的新查询/函数看起来像这样:
CREATE FUNCTION dbo.RatesReport (@StartTapeDate DATE, @StartFcbVersionId int, @StartSvbVersionId int, @DataType int)
SELECT *
FROM dbo.DataTapes t
WHERE t.TapeDate = @StartTapeDate AND t.VersionId IN(@StartFcbVersionId, @StartSvbVersionId) and t.SecId = @LoanType
如果我理解正确的话,为什么你不能像这样在函数主体中写下这个表达式?
它不是性能最高的解决方案,但如果您打算使用多语句表值函数,
SELECT *
那么它可能是您最不关心的问题,这两者都会影响性能。(很难分辨您尝试使用提供的示例代码编写哪种类型的函数,因为它缺少必要的语法。)