首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CREATE PROCEDURE SQL Server

CREATE PROCEDURE SQL Server
EN

Stack Overflow用户
提问于 2014-01-10 09:25:34
回答 1查看 129关注 0票数 0

我试图通过指定输入参数来将不同的变量输入到一个过程中--对不起,如果这很容易的话--我已经使用SAS多年了,并试图弄清楚SQL!

@VAR是我的输入参数。它可以是我正在查看的数据中的数字或文本。我希望能够有10列,我运行这段代码,并通过更改输入分别输出结果-这是可能的吗?

代码语言:javascript
复制
declare @VAR as int???
set @VAR = 'exp_year', 'BusYrsExp'

CREATE PROCEDURE getExpSum @VAR int as
select @VAR, sum(NetCost) as clmCost, sum(claimCount) as clmnum, sum(earneddays) as exposure
into ow_exp_year
from CF_BI
group by @VAR
order by @VAR

好的--如果我需要使用动态sql --这个过程可以只用于一个变量吗?动态sql会使这变得更加困难吗?

EN

回答 1

Stack Overflow用户

发布于 2014-01-10 09:37:54

如果事先知道@VAR的可能值,就可以编写一条CASE语句。例如,如果您有一个表示某个枚举的int值:

代码语言:javascript
复制
CREATE PROCEDURE getExpSum
    @groupColumn int --enumeration: 1=foo, 2=bar, 3=baz
AS
    SELECT grp, sum(NetCost) as clmCost, 
        sum(claimCount) as clmnum, sum(earneddays) as exposure
    INTO ow_exp_year
    FROM
    (
        SELECT CASE @groupColumn
            WHEN 1 THEN foo
            WHEN 2 THEN bar
            WHEN 3 THEN baz
            END AS grp,
            NetCost, claimCount, earneddays
        FROM CF_BI
    ) x
    GROUP BY grp
    ORDER BY grp
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21034580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档