试图运行此SQL查询,虽然它说它已成功执行,但不返回1结果。相反,它从数据库表返回所有行,因为它一般不会:SQL Server Management Studio中的此SQL查询有什么问题?
SELECT * FROM [Philadelphia].[dbo].[mmgusers_tbl] [WHERE UserName = 'testing' LIMIT 1];
如何更改执行时该给我的只有1行?
试图运行此SQL查询,虽然它说它已成功执行,但不返回1结果。相反,它从数据库表返回所有行,因为它一般不会:SQL Server Management Studio中的此SQL查询有什么问题?
SELECT * FROM [Philadelphia].[dbo].[mmgusers_tbl] [WHERE UserName = 'testing' LIMIT 1];
如何更改执行时该给我的只有1行?
LIMIT 1在MySQL中使用限制的记录。在SQL Server中,请尝试使用以下查询:
SELECT TOP 1 * FROM [Philadelphia].[dbo].[mmgusers_tbl] WHERE UserName = 'testing';
出现此错误:'Msg 102,Level 15,State 1,Line 1''''''附近的语法不正确。'' –
检查您的语法以确保您没有额外的方括号。这个语法适用于我。 – j03z
非常感谢。它正在工作。 –
试试这个
SELECT Top 1 * FROM [Philadelphia].[dbo].[mmgusers_tbl]
WHERE UserName = 'testing'
(OR)
Select * FROM
(
SELECT *,Row_Number() Over (Order By (Select Null)) AS RN FROM [Philadelphia].[dbo].[mmgusers_tbl] WHERE UserName = 'testing'
) AS T
Where RN = 1
方括号用于[数据库]/[类型]/[表名]。您无需将其包含在声明的其余部分。如果命名约定很糟糕,例如[Username.DatabaseX]。[dbo]。[Tablename] – Gauthier
,我对第二个SQL查询感到困惑。 LIMIT不是SQL Server语法的一部分,该查询将引发错误。 –
@AonyonyGrist请立即检查 –
这是你寻找
SELECT TOP 1 * FROM [Philadelphia].[dbo].[mmgusers_tbl] WHERE UserName = 'testing';
把'['和']'放在WHERE子句的周围意味着这是表的别名,而不是实际的WHERE子句。 –
'[WHERE UserName ='testing'];'? – bhs
SELECT * FROM [Philadelphia].[dbo].[mmgusers_tbl] WHERE UserName = 'testing'
什么,只有1行相匹配的用户名“测试'
,如果你只是想要一个单行
SELECT TOP 1 * FROM [Philadelphia].[dbo].[mmgusers_tbl] WHERE UserName = 'testing'
请不要使用select *。显式指定输出,因为这会影响执行。 – ChrisBint
'LIMIT 1'是MySql语法。在你的'SELECT'之后,MS SQL Server中的等价物是'TOP 1'。 'SELECT TOP 1 * FROM [Philadelphia]。[dbo]。[mmgusers_tbl] WHERE UserName ='testing'' – Shiva
您不应该在这些可怕的括号之间放置*整个*'where'子句。 –