2015-10-01 58 views
0

假设名为Tb的表具有此列Checked,Cost1,Cost2根据其他列值显示某些列值

我想要创建一个sql查询,它必须显示一列:Cost1如果checkedCost2如果!checked

checked的值可以是01

我假设我可以使用case条件,但是我该如何实现呢?

+0

那岂不是更好有两列? '检查'和'成本',然后'选择费用从TB检查= 1' –

+0

@ DarrenBartrup-Cook Cost1可能是正常的Cost和Cost2折扣成本,并检查告诉你哪一个使用。 –

+0

@Juan - 肯定会和两列一样吗?更改我给出的SQL示例,使Checked值为0,它会给出折扣成本。不会有两列成本打破了从同一个表中删除重复列的第一种正常形式 - 两个成本列?如果折扣价格是总价格的百分比,那么这可以作为折扣百分比存储在单独的表格中? –

回答

2

你说得对。一个case表达式会做。

select case when checked = 1 then cost1 else cost2 end as cost 
    from Tb 
+0

案件表达,不是案件陈述... – jarlh

+0

@jarlh:谢谢。 – sstan

+0

@jarlh Wodering有什么区别? [** Here **](https://msdn.microsoft.com/en-us/library/ms181765.aspx)我看到他们同时使用'CASE表达式'和'CASE语句评估' –

相关问题