【发布时间】:2021-08-28 10:58:50
【问题描述】:
我需要在 SQL 中创建函数来检查变量或参数中的数据,如下所示
@Category as varchar(50)='ABC,DEF'
@Value as varchar(50)='1,2'
并将@Category 值与表中的类别进行比较,然后从参数返回匹配的值
JOB TABLE ---
JOB CATEGORY
123 ABC
234 DEF
234 SSS
Select JobNo,FUNCTION(@Category,@Value,CATEGORY) from JOB
FINAL RESULTS
JOB VALUE
123 1
234 2
234 0
如果类别匹配,则从参数返回值,否则返回 0。
【问题讨论】:
-
我正在使用 SQL Server
-
“功能是出了名的慢”@GeorgeMenoutis,这是一个非常笼统的陈述而不是真的。写得不好的函数,多行函数很慢。例如,编写良好的内联表值函数通常非常快。
-
@Larnu 我撤回了我的评论,因为它确实太笼统了。不过,对于 OP 想要的,我认为加入一个小型主表仍然是可取的。
-
是的,带有一些外键约束的“验证表”在这里可以很好地工作。
-
这个问题完全不清楚:样本数据和预期结果是什么,你有什么查询要让这个函数进入?
标签: sql-server tsql stored-functions