现表里有一字段 比如价格 price1
类型是varchar的 里面有美元值比如 US8.88 和人民币值 8.88
另有一字段 price2 类型是decimal
如何将这两个字段比较价格大小
请大神指教一下查询比较大小

解决方案 »

  1.   

    这样的话,我只能说数据库设计不合格。
    建议将price1,price2都分别拆分成2个字段,货币 和 值,如果price1,price2的货币都是一样的,那么拆分后就是3列,如果不一样,那你就需要通过汇率换算。
      

  2.   

    谢谢 数据库不是我设计的 现在改也没办法了
    我的问题说的不清楚
    如果查询一条还能理解
    现在是唯一的条件 price1大于price2 查询出所以符合条件的记录
    请大神给一点思路
      

  3.   

    这个得按照 你price1里面的数据来拆分了
    你贴一下你price1里面的数据都有什么
      

  4.   


    price1数据就是分两种 一种是 US后面加数字 还有一种是直接数字
    就是美元和人民币混杂在一个字段里 请教怎么写判断
      

  5.   

    select *
    ,convert(float,case when price1 like 'US%' then REPLACE(price1, 'US', '') else price1 end) price1_new
     from (
    select 'US8.8' price1, 5 price2
    union 
    select '4.8', 5
    ) aa