2013-07-22 60 views
-3

我的列中有一個非數字值。我在下面的運算符之間使用,但我認爲不建議運算符之間的非數字值,有人可能會建議我如何重寫此查詢。之間顯示正確的結果,但我不能用它來這裏非數值:替代SQL之間爲非數字值

select * from test 
where textnumber between ('a64') AND ('a64.3'); 
+0

你想通過這個查詢得到什麼值? – mishik

+0

如何刪除where子句中的字母並將其添加回select中。它總是一個字母? – logixologist

+0

我想要得到一個使用BETWEEN運算符作爲後端SQL的a64,但它不適用於我在代碼中使用的邏輯。在沒有使用BETWEEN運算符的情況下,其他方式是什麼?此外,我不想爲此目的創建任何臨時表。 –

回答

2

您可以隨時向上突破BETWEEN到它的組成部分。

SELECT * 
FROM test 
WHERE textnumber >= 'a64' 
    AND textnumber <= 'a64.3'; 

事實上,如果你閱讀阿龍貝特朗的博客What do BETWEEN and the devil have in common?你會發現他其實建議吧。特別是對於日期,雖然這不是你正在使用的。

還要警告字符串和數字不一樣。例如'a64.30'NOT由上述查詢拾取。

+0

工作。謝謝 –