如何检查1分表列在SQL Where条件运算符(>或<)

问题描述:

表格式如何检查1分表列在SQL Where条件运算符(>或<)

tid,name,num1,num2 
1,abc,10,9 
2,xyz,15,15 

结果

1,abc,10,9 

SQL就像

select field1,field2,field3 from table1 where field1 > field2 
+1

欢迎堆栈溢出的一个例子。我们知道的事情 - 但不清楚你的实际问题是什么。你能提供更多细节吗? Wher'y表名? – Jan

+0

谢谢您的支持,实际上我想检查两个表字段之间的sql条件,如“选择id,名称,no,no1从表no其中no> no1” –

+0

看起来不错 - 问题在哪里? – Jan

最有可能的数据表中用于这两列的类型都是varchar。

所以你没有比较数字。
数字10大于9,但字符串“10”不大于“9”。

您可以更改表格并将其更改为数字类型。

或者在比较它们之前,在WHERE子句中将它们转换为数字类型。

例如:

select * 
from table1 
where cast(field1 as SIGNED) > cast(field2 as SIGNED) 

其中表类型被改变

drop table if exists table1; 
create table table1 (id int, name varchar(30), field1 varchar(8), field2 varchar(8)); 
insert into table1 (id,name,field1,field2) values 
(1,'abc',10,9), 
(2,'xyz',15,15); 

select * 
from table1 
where field1 <= field2; 

alter table table1 
modify field1 INT SIGNED, 
modify field2 INT SIGNED; 

select * 
from table1 
where field1 > field2; 
+0

我尝试和更改int数据类型但没有得到实际输出。 –

+0

好吧我运行sql脚本。 –

+0

谢谢你的工作。 –