試圖運行此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'子句。 –