2014-09-03 19 views
2

我試圖選擇COLUMN的值介於1和9之間的所有行。問題是COLUMN的數據類型是文本,並且我使用了以下代碼讓那些行:在運算符和Microsoft Access中的數字文本值之間使用SQL

SELECT * FROM TABLE WHERE COLUMN BETWEEN '1' AND '9'; 

非但沒有與1〜9列值的行,我也得到其列行的值10,11等等。 我該如何讓它只給我1到9之間的COLUMN值的行?

回答

3

例如像這樣:

SELECT * FROM TABLE WHERE COLUMN BETWEEN '1' AND '9' and LEN(COLUMN) = 1; 
+0

這似乎有點奇怪,數值被引用。我想你也會發現該列是一個保留字。 – Fionnuala 2014-09-03 11:50:48

+0

試過這個,它的工作謝謝你任何其他人的幫助。我很感激 :)。 – user3497807 2014-09-03 11:55:14

+0

@Fionnuala:嗯,我們正在尋找字符串。其實只需要'''''','2','3','4','5','6','7','8','9')'這是另一種解決方案之間。我同意TABLE和COLUMN可能會導致衝突(如果使用的話)。他們僅僅是這裏真實姓名的佔位符。 – 2014-09-03 12:54:46

4

如果所有的列中的值都保證是整數 ™你可以這樣做:

SELECT * FROM TABLE WHERE CInt(COLUMN) BETWEEN 1 AND 9 
-1

您可以將列類型where子句。

SELECT * FROM TABLE WHERE convert(bigint,COLUMN) BETWEEN '1' AND '9'; 

但要確保所有的值可以轉換爲bigint型或U可以使用float INT /等

+0

-1,因爲Microsoft Access不支持CONVERT。 – jpw 2014-09-03 11:26:09

+0

你沒有提到它,你需要它的微軟訪問。 – 2014-09-03 11:30:53

+0

這不是我的問題,但無論如何它被標記爲ms-access。 – jpw 2014-09-03 11:32:19

相關問題