我使用LIKE
来针对float字段返回匹配的数字结果。似乎一旦小数点左边的位数超过4位,就不会返回与小数点右边的搜索项匹配的值。下面是说明这种情况的例子:针对float字段的SQL服务器“like”产生不一致的结果
CREATE TABLE number_like_test (
num [FLOAT] NULL
)
INSERT INTO number_like_test (num) VALUES (1234.56)
INSERT INTO number_like_test (num) VALUES (3457.68)
INSERT INTO number_like_test (num) VALUES (13457.68)
INSERT INTO number_like_test (num) VALUES (1234.76)
INSERT INTO number_like_test (num) VALUES (23456.78)
SELECT num FROM number_like_test
WHERE num LIKE '%68%'
该查询并没有随着12357.68值返回的记录,但它确实与3457.68的返回值的记录。用78而不是68来运行查询不返回23456.78记录,但使用76返回1234.76记录。
所以要回答这个问题:为什么有更大的数字会导致这些结果发生变化?我如何更改我的查询以获得预期的结果?
**不要对数字使用'LIKE' **这是用于字符串字符串比较。 – JNK
@JNK,如果数值被转换为字符串呢? – rosscj2533
你可以这样做我猜,但为什么你在地球上? – JNK