在case语句中执行存储过程

时间:2014-10-06 21:22:41

标签: sql sql-server tsql stored-procedures case-when

我有一个带有Insert Into Select子句的Case When语句。我想在When语句中执行存储过程。

Insert into Orders(id, custId, custIntake)
Select id, custId custIntake = 
   Case
     When ( Exec mySProc(custId) = 1 ) = 'InStore'
     When ( Exec mySProc(custId) = 0 ) = 'OutsideStore'
     Else null
   End
From OrdersImport

如何在Exec mySProc(custId)内运行Case When

3 个答案:

答案 0 :(得分:2)

如果你想像这样运行它,我建议你将'mySProc'程序转换为标量用户定义函数。存储过程无法满足您的需求。

答案 1 :(得分:0)

如果我理解正确那么你需要的是在WHEN语句为真时运行的代码。 只需使用CASE>什么时候>那么如下所述:http://msdn.microsoft.com/en-us/library/ms181765.aspx

希望这有帮助。

答案 2 :(得分:0)

这样做。

如果您为 id 列设置了自动增量,则无需在查询中提及。如果需要,可以添加它。

Insert into orders(custId, custIntake) 
Select custId, (CASE WHEN custId = '1' THEN 'InsideStore' ELSE 'OutsideStore' END)  from ordersimport;

希望,它会对你有帮助。