gpt4 book ai didi

SQL Server - 在带有文本和数字的 varchar 字段中的两个数字范围之间进行选择

转载 作者:行者123 更新时间:2023-12-04 20:22:50 28 4
gpt4 key购买 nike

我有一个数字范围为 0-2000000 的表格。如果我执行 BETWEEN 50 AND 100,我可以使用 between 语句来获取事物的记录。这行得通。

但我遇到的问题是,如果有任何记录在字符串中包含“1FD32”,则此列是一个 varchar,我无法在它之间进行选择。 SQL Server 无法转换“BETWEEN 50 AND 100”,因为它正在寻找一个 int。如何获取这些范围内的所有记录,并忽略其中包含字母的所有记录?

最佳答案

如果要进行数值比较,保证不出错的唯一方法是使用CASE 语句。这是唯一保证估值顺序的 SQL 语句(当不与聚合函数一起使用时)。

所以,这是可以工作的代码:

select *
from t
where (case when isnumeric(col) = 1 then cast(col as bigint) end) between 20 and 100

请注意,如果您的数字包含小数点,那么您将需要使用 DECIMALFLOAT

关于SQL Server - 在带有文本和数字的 varchar 字段中的两个数字范围之间进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13038964/

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