前三名的SQL语句

前三名的SQL语句,sql,sql-server,Sql,Sql Server,尝试编写SELECT语句,从tblProducts表中选择前3行,其中供应商ID类似于输入数据的前两个字符。我决定在手术中使用,但不起作用。我也尝试过在IN上使用LIKE,但我一直收到这一行的错误消息。我的逻辑错了吗 SELECT TOP 3 FROM tblProducts WHERE VendorID IN UCase(Me.txtProdID.Text) 尝试使用括号,也就是说.text可能会导致问题,add.toString,或者因为它是一个ID,所以可能是toInt SELECT T

尝试编写SELECT语句,从tblProducts表中选择前3行,其中供应商ID类似于输入数据的前两个字符。我决定在手术中使用,但不起作用。我也尝试过在IN上使用LIKE,但我一直收到这一行的错误消息。我的逻辑错了吗

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

尝试使用括号,也就是说.text可能会导致问题,add.toString,或者因为它是一个ID,所以可能是toInt

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

我想你只是错过了前三名之后的列定义。请尝试以下方法:

SELECT TOP 3 *
FROM tblProducts
WHERE VendorID = UCase(Me.txtProdID.Text)
如果你想在中使用,我想你需要括号。我把它改成=

重新读取供应商ID与输入数据的前两个字符相似的位置后进行编辑。 您可能希望将LIKE与LEFT或SUBSTRING一起使用,而不是IN用于WHERE条件:

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

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

我不确定这段代码将在哪个平台上编译。我觉得他是从文本框中获取值的,但我没有足够的声誉来发表评论,要求他具体点:/I我想他可能错过了从文本框值到其他int或string的解析