use*_*729 1 sql comparison database-agnostic
mysql> select 0.121='0.121';
+---------------+
| 0.121='0.121' |
+---------------+
| 1 |
+---------------+
Run Code Online (Sandbox Code Playgroud)
是否持有其他数据库number='number'是true?
首先:大多数数据库都使用本地化的数字格式.因此,将数字转换为字符串很可能并不总是与硬编码字符串相同.
然后:您将遇到使用sql语法的问题.请参阅oracle bellow的实验.
在Oracle中,您总是需要一个FROM子句(除了他们在版本10中更改了它).
select 0.121='0.121' from sys.dual
Run Code Online (Sandbox Code Playgroud)
在Oracle中,在select子句中不能有这样的表达式.
你需要一个案例陈述:
select case when 0.121 = '0.121' then 1 else 0 end as xy
from sys.dual
Run Code Online (Sandbox Code Playgroud)
然后你得到一个错误,它不是数字.要解决此问题,请将其转换为:
select case when To_Char(0.121) = '0.121' then 1 else 0 end as xy
from sys.dual
Run Code Online (Sandbox Code Playgroud)
这将回来0!因为,在我的机器上,0.121转换为字符串".121".这些是瑞士的设置.如果我有德语设置,那就是",121"(注意逗号).
所以最后回答这个问题:不.