2014-12-03 92 views
0

基於字符科學記數法我有一個表,看起來像這樣:過濾行與SQL

enter image description here

我們稱之爲mutable

,結構是這樣的:

enter image description here

我想要做的是根據0123過濾該表中的行包含像'1e-31'這樣的信息的列 。我怎麼用SQL查詢來做到這一點?

我試過,但無濟於事:

 SELECT DISTINCT query_id, subject_id, perc_idd, evalue 
     FROM mytable 
     WHERE evalue < 1e-4 

回答

0

在TSQL:

SELECT DISTINCT query_id, subject_id, perc_idd, evalue 
FROM mytable 
WHERE Cast(evalue as real) < 1e-4 
+0

@Deepshika:那不行。我想要得到小於等於1e-4的值。 – neversaint 2014-12-03 05:38:56

+0

@Deepshika:我得到這個錯誤'你的SQL語法有錯誤;檢查與您的MySQL服務器版本相對應的手冊,以便在'real'附近使用正確的語法作爲金錢)與nvarchar(255)),'。00','')<1e-4'在第1行。' – neversaint 2014-12-03 05:49:54

+0

oh wrong標籤,然後我建議T-SQL ..讓我編輯相同的MySQL以及.. – Deepshikha 2014-12-03 05:51:32

0

嘗試這樣

select * from table1 where SUBSTRING_INDEX(evalue, '-', 1)='le' and 
convert(SUBSTRING_INDEX(evalue, '-',-1), UNSIGNED INTEGER) < 4 
0

你可以把它轉換爲二進制和匹配

select id from test where CONVERT(id,BINARY) < CONVERT('1-e4',BINARY)