我有一个带有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
?
答案 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;
希望,它会对你有帮助。