私は、鋳造せずに仕事をしたりトリミングしませんあなたのフロートの列に小数の範囲を指定しなかったしなかった場合:
これが正常に動作します:
-- drop table test_float;
create table test_float(f float(6,4) , d DECIMAL(4,2));
insert into test_float values (0.5,0.5);
insert into test_float values (0.61,0.61);
select * from test_float where f = d;
select * from test_float where f = 0.61;
、これは動作しません。
drop table test_float;
create table test_float(f float , d DECIMAL(4,2));
insert into test_float values (0.5,0.5);
insert into test_float values (0.61,0.61);
select * from test_float;
select * from test_float where f = d;
select * from test_float where f = 0.61;
select * from test_float where CAST(f as DECIMAL(16,2)) = 0.61;
それは小数範囲のために働くrange = 1
なぜ、私は本当に、なぜ分からないのですか?!
スコア欄のデータ型は? – JYoThI
はい、私が 'trim'関数を使うとうまくいきます。 –
@VivekMaru http://stackoverflow.com/a/2567509/4248328 –