2017-05-29 18 views
0

表格式如何檢查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

回答

0

最有可能的數據表中用於這兩列的類型都是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

謝謝你的工作。 –

相關問題