当一个值与其他值不同时,SQL Server

2023-12-31

我有这个表的表结构prices:

CREATE TABLE prices
(
     id int, 
     priceFrom int, 
     priceUp int
);

INSERT INTO prices (id, priceFrom, priceUp)
VALUES (1, 23, 23), (2, 0, 0), (3, 12, 13),
       (4, 40, 40), (5, 15, 15), (6, 0, 0);

这是结果:

我有这样的疑问:

select 
    pricefrom, priceup,
    case
        when pricefrom = 0 then null
        when priceFrom <> priceUp then priceFrom + ' - ' + priceUp
        when priceFrom = priceUp then priceFrom
    end as FinalPrice
from 
    prices

我需要做的是

  1. Pricefrom = 0 然后显示 null
  2. Pricefrom = Priceup 然后显示价格
  3. 至少如果pricefrom!=priceup我想显示例如:12(pricefrom) - 13(priceup)

但在我的这一行查询中:

我尝试这样做<>但结果中显示两个数字的总和:

我怎样才能解决这个问题?


我想你正在寻找concat在这里发挥作用。

 select pricefrom, priceup,
case
when pricefrom = 0 then null
when priceFrom <> priceUp then concat(priceFrom, ' - ', priceUp)
when priceFrom = priceUp then cast(priceFrom as varchar(8))
end as FinalPrice
from prices

这个链接可能会有帮助

MySQL 将两列合并为一列 https://stackoverflow.com/questions/22739841/mysql-combine-two-columns-into-one-column/22739860#22739860

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当一个值与其他值不同时,SQL Server 的相关文章

随机推荐