【发布时间】:2017-01-15 22:29:56
【问题描述】:
我正在使用 SQL Server 2014,并且在 T-SQL 查询中有以下 CASE 语句。
(CASE
WHEN c.[Market FINAL] = 'Overbooking' AND c.[Booking type] = 'GRP' THEN 'Overbooking'
WHEN c.[TaProfileID] = 853 THEN 'Poland (TUI only)'
WHEN c.[Source of Business] = 'TO' AND c.[CountryName] = 'Netherlands' THEN 'Netherlands'
WHEN c.[Source of Business] = 'DMC' AND c.[Booking Origin (1)] = 'Netherlands' THEN 'Netherlands'
WHEN c.[Booking type] = 'GRP' THEN 'G&I'
ELSE c.[Market FINAL]
END) AS 'Market',
我想从该查询中删除它并将其作为用户定义的函数运行,但我很难创建该函数。另外,一旦它作为函数运行,我将如何在查询中使用它?
【问题讨论】:
-
您也可以使用
CROSS APPLY并生成一个计算字段,该字段可以被其余查询多次使用。 -
我会添加一个翻译表
-
@ZoharPeled 谢谢。能否提供一些关于 SQL 中翻译表的参考资料? Google 帮不上什么忙。
-
完整的查询是什么样的?
-
只是一个简单的表,其中包含决定案例语句结果所需的列,以及该结果的列。
标签: sql sql-server tsql case user-defined-functions