select * from tba where 价格1>价格2

解决方案 »

  1.   

    select * from tba where 价格1>价格2create table #temp(
    A varchar(10),
    B varchar(10),
    C varchar(10),
    D varchar(10)
    );
    insert into #temp values('k1','m1',10,9);
    insert into #temp values('k1','m1',20,9);
    insert into #temp values('k1','m1',10,19);
    insert into #temp values('k1','m1',20,19);select * from #temp where c>D;结果:A B C D
    k1 m1 20 19
      

  2.   

    SQL> with T AS (
      2  select 'k1' AS A,'m1' AS B,10 AS C,9 AS D FROM DUAL
      3  UNION ALL SELECT 'k1','m1',20,9 FROM DUAL
      4  UNION ALL SELECT 'k1','m1',10,19 FROM DUAL
      5  UNION ALL SELECT 'k1','m1',20,19 FROM DUAL)
      6  SELECT * FROM T WHERE C>D;A  B           C          D
    -- -- ---------- ----------
    k1 m1         10          9
    k1 m1         20          9
    k1 m1         20         19SQL>
    语句没错啊,你自己去试试吧
      

  3.   

    你这个什么个情况,是oracle数据库吗?不可能出现这种结果
      

  4.   


    版主,帮我看下,我这没有oracle环境,只有MSSQL,查出来的结果怎么是这样啊?
      

  5.   

    你这个什么个情况,是oracle数据库吗?不可能出现这种结果

    额MSSQL啊 好吧 我明天到公司用oracle在试下
      

  6.   

    你这个什么个情况,是oracle数据库吗?不可能出现这种结果

    额MSSQL啊 好吧 我明天到公司用oracle在试下
    就算是MSSQL也不至于是这样的结果啊,不会你设置了只显示一条结果,导致其他结果没显示出来吧, 你在检查一下
      

  7.   

    select * from tba where 价格1>价格2create table #temp(
    A varchar(10),
    B varchar(10),
    C varchar(10),
    D varchar(10)
    );
    insert into #temp values('k1','m1',10,9);
    insert into #temp values('k1','m1',20,9);
    insert into #temp values('k1','m1',10,19);
    insert into #temp values('k1','m1',20,19);select * from #temp where c>D;结果:A B C D
    k1 m1 20 19数据类型搞错了, 把 C 和 D 列改成 int 型。 varchar 是按字符串比较的。
      

  8.   

    这应该是字段类型问题。导致比较的时候,是字符串进行比较  你先 to_number 再比较。