gpt4 book ai didi

mysql - 这里有文本到数字的转换吗?

转载 作者:行者123 更新时间:2023-11-30 23:50:10 36 4
gpt4 key购买 nike

我有一个表,其中有一列 amount类型 DEC .
以下查询有效:
SELECT * FROM mytable WHERE amount < '1';

SELECT * FROM mytable WHERE amount = '1.5';

即即使我使用像 amount 这样的引号对于字符值(尽管它们实际上是数字),查询仍然有效。

我的问题是:
这是因为 SQL Server“理解”数据类型实际上是一个数字并在执行 SQL 时忽略引号 select
或者
SQL 服务器首先转换 amount值转换为文本,然后进行比较?所以这会因转换而产生性能开销?

最佳答案

是的,发生了数字转换,因为“金额”列被定义为数字。要对此进行测试,您可以尝试:

SELECT * FROM mytable WHERE amount < '1a'; 

您将收到错误消息:

Msg 8114, Level 16, State 5, Line 1
Error converting data type varchar to numeric.

意思是 varchar 被转换为数字,而不是相反。

关于mysql - 这里有文本到数字的转换吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15717034/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com