2014-12-03 87 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)