在TSQL中调用存储的案例

时间:2016-03-28 15:20:23

标签: sql sql-server tsql sql-server-2012

我有一组案例经常用于对查询结果进行分类,而不是每次我希望我可以使用我使用的简化版本时从保存的文件中复制/粘贴它们。

        //Width and height
        var w = 960
        var h = 1000

        //Define map projection
        var projection = d3.geo.mercator()
                               .translate([w/2,h/2])
                               .scale(5000);

        //Define path generator
        var path = d3.geo.path()
                         .projection(projection);

进入

CASE
WHEN source = 'x' AND othersource  = 'y' THEN 'region'
WHEN subsource = 'm' AND othersubsource = 'n'  THEN 'district'
WHEN littlesource = 'a'  AND otherlittlesource = 'b' THEN 'office'
ELSE 'ERROR - LOOK AT ME'
END AS "Service Channel"

其中@RDOCASE是我在上面列出的完整案例的存储的短格式版本。我认为它会像在查询开头声明一个变量,除非它存储在某个地方,并且可以在任何正在该数据库上运行的查询中随时调用。

1 个答案:

答案 0 :(得分:2)

您应该让计算列为您完成工作。 。 。假设列都来自同一个表:

ALTER TABLE t ADD ServiceChannel AS (<your case here>)

如果值来自多个表,则可以使用视图来实现此目的。或者也许是一个标量函数,如果你想传入相关的变量。

旁注:不要对列别名使用单引号。这只是令人困惑。单引号应该用于字符串和日期常量。