我使用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