2012-05-03 15 views

Respuesta

10

LIMIT no funciona en T-SQL.

usted tiene que utilizar TOP lugar, como este:

SELECT TOP(1) * FROM tableEating WHERE person='$identity'; 

espero que funcione para usted.

Como dice Aaron, también necesita un ORDER BY si no desea obtener una fila arbitraria.

+0

¡Funciona como un encanto! Gracias ! – bilbaoWon

+3

Solo tenga en cuenta que sin un 'ORDER BY' obtendrá una fila arbitraria, y esto puede cambiar desde la ejecución a la ejecución ... –

0

LIMIT no funciona y TOP(1) también puede no funcionar en declaraciones anidadas.

lo tanto, el enfoque correcto es utilizar OFFSET... FETCH NEXT:

SELECT * FROM TableName 
OFFSET 0 ROWS FETCH NEXT 1 ROWS ONLY 

que básicamente dice TSQL para tomar una fila (NEXT 1 ROWS ONLY) a partir de la primera (OFFSET 0).

+0

¿Por qué dice que 'Top (1)' podría no funcionar en una declaración anidada ? Tengo curiosidad sobre esto, ¿te importaría elaborar? – user69513

+0

No estoy seguro, pero veo que también se está discutiendo aquí https://stackoverflow.com/questions/29358682/sql-top-1-syntax-for-a-nested-query – K48