我有一个问题,我想从表中选择,但是有别名列,每列都有一个条件。
Select Value, Target, Plan from Product
如果值为条件:where Product.DetailCode = 'A'
列Value =Product.Value * 10
,则目标条件为:where Product.DetailCode = 'B'
,
专栏Value =Product.Value * 100
编辑:我想要在C#:
if(Product.DetailCode == 'A') {Value = Product.Value * 10} else if(Product.DetailCode == 'B') {Value = Product.Value * 100}
EDIT2:谢谢大家, 最后,我有自己的答案。
select case when product.code = 'A' then product.Value * 10 end as Value, case when product.code = 'B' then product.Value * 100 end as Target from product
非常感谢!
答案 0 :(得分:1)
Select
case when Product.DetailCode = 'A' then 100
WHEN Product.DetailCode = 'B' then 10 end * Product.Value as value
, TARGET
, Plan
from Product
答案 1 :(得分:1)
您可以使用此
SELECT
Value =
CASE Product.DetailCode
WHEN 'A' THEN Product.Value * 10
WHEN 'B' THEN Product.Value * 100
ELSE Product.Value * 100
END
, Target, Plan
FROM Product
答案 2 :(得分:0)
编辑: 阅读完更改后:
Select
if(Product.DetailCode = 'A', value *10, if(Product.DetailCode = 'B', value * 100, value)) AS target
如果detailcode为a,则使用值* 10;如果detailCode为B,则使用值* 100;如果detailCode为其他值,则使用值。
答案 3 :(得分:0)
考虑创建一个查找表而不是像这样的硬编码条件。查询可能如下所示
select p.Value * coalesce(l.koeff,1) Value, Target, Plan
from Product p
left join Lookup l on p.DetailCode = l.Code