select * into #transacTbl from tmpTrans
insert
select
(case when tmpT.TranStatus = 10
then(
select ID, 'Returned')
else(
select ID, 'GoodSale')
end)
from
(
select * from MainTransacSource
) as tmpT
我希望能够将交易的详细信息插入到带有标签的不同表中,如果它是退货或良好的销售/交易。我这样做是为了避免光标,所以请避免使用光标给出解决方案。
我知道代码看起来不错,但我遇到的是,case语句只通过子查询返回一个值。
这是代码的简化版本;我有至少6种类型的案例,应该能够通过ROW插入。我不认为我必须重复每列的每个案例,因为实际的列数大约是38。
如果这不符合逻辑,您可以建议另一种解决方法。当然,没有光标。
答案 0 :(得分:3)
如果无法访问您的表格并且不了解您想要实现的内容,请尝试类似:
select * into #transacTbl from tmpTrans
insert
select tmpT.ID,
(case when tmpT.TranStatus = 10
then 'Returned'
else 'GoodSale'
end)
from
(select * from MainTransacSource) as tmpT <OR simply MainTransacSource tmpT (maybe)>
干杯。