【发布时间】:2012-10-28 08:45:40
【问题描述】:
昨天我们遇到了一个必须获取db field 类型的场景,在此基础上我们必须编写该字段的描述。喜欢
Select ( Case DB_Type When 'I' Then 'Intermediate'
When 'P' Then 'Pending'
Else 'Basic'
End)
From DB_table
我建议编写一个 db 函数而不是这个 case 语句,因为这样更可重用。喜欢
Select dbo.GetTypeName(DB_Type)
from DB_table
有趣的是,我们的一位开发人员说使用数据库功能会低效,因为database functions 比Case statement慢。我在互联网上搜索以找到在效率方面更好的答案,但不幸的是我没有找到任何可以被认为是满意的答案。请赐教您的想法,哪种方法更好?
【问题讨论】:
-
这个
dbo.GetTypeName(DB_Type)有相同的CASE表达式吗?即:您在询问将CASE表达式直接写入查询与将其放入用户定义的函数在性能和可重用性方面 之间的区别。对吗? -
是的!一切都一样。
标签: sql sql-server tsql sql-function