TOP 3的SQL语句

时间:2014-10-10 03:04:17

标签: sql sql-server

尝试编写一个SELECT语句,它将从表中选择前三行tblProducts WHERE Vender ID就像输入数据的前两个字符。我决定使用IN操作,但不能正常工作。我也试过LIKE而不是IN,但是我一直在用这条线得到错误信息。我的逻辑错了吗?

SELECT TOP 3
FROM tblProducts
WHERE VendorID IN UCase(Me.txtProdID.Text)

2 个答案:

答案 0 :(得分:2)

我认为您在top 3之后错过了您的列定义。试试这个:

SELECT TOP 3 *
FROM tblProducts
WHERE VendorID = UCase(Me.txtProdID.Text)

此外,如果您想使用IN,我认为您需要使用括号。我将其更改为=


重新阅读后编辑WHERE the Vender ID is like the first two characters of the entered data. 您希望将LIKELEFT(或SUBSTRING)一起使用,而不是IN用于WHERE条件:

WHERE VendorID like Left(UCase(Me.txtProdID.Text),2) + '%'

此外,您可能不需要ucase - 取决于您的数据库排序规则。

答案 1 :(得分:0)

尝试使用括号,同时.text可能会导致问题,添加.toString(),或者因为它的ID,也许是toInt()

SELECT TOP (3)
FROM tblProducts
WHERE VendorID like UCase(Me.txtProdID.Text.toInt())