sql存储过程中 Where条件中的case when

SELECT[Fiscal_Period],left(Datename(MONTH,convert(datetime,[Close_Date])),3)AS[Month]... SELECT
[Fiscal_Period],
left(Datename(MONTH,convert(datetime,[Close_Date])),3) AS [Month]
FROM T_SFDC_KK_UPDATE
Where
1 = 1
Case When @SALESNAME <> '' Then And Opportunity_Owner = @SALESNAME End
Case When @CHANNELPARNTNER <> '' Then And Primary_Channel_Partner = @CHANNELPARNTNER End
Case When @REPORTTYPE In('SAMS','Indirect') Then And Opportunity_Owner = @SALESNAME End
GROUP BY [Fiscal_Period],left(Datename(MONTH,convert(datetime,[Close_Date])),3)
ORDER BY charindex(left(Datename(MONTH,convert(datetime,[Close_Date])),3),'Nov,Dec,Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct')
存储过程中含有3个参数 请问大神我这样写存储过程中的SQL对不对呢
展开
 我来答
greystar_cn
2015-10-06 · 知道合伙人软件行家
greystar_cn
知道合伙人软件行家
采纳数:16407 获赞数:17260
本人主要从事.NET C#方向的技术开发工作,具有10多年的各类架构开发工作经验。

向TA提问 私信TA
展开全部
Case When 只能简单的返回一个值,不能让你拼SQL条件
追问
那么如果要拼接SQL条件我应该怎么写呢
追答
你这种只能拼字符串

declare @sql varchar(4000)
set @sql='select .....'
if @SALESNAME ''
set @sql=@sql+' 你的条件'
一个个条件判断,再拼上去
最后
exec @sql
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式