2012-05-03 27 views

Trả lời

10

GIỚI HẠN không hoạt động trong T-SQL.

Bạn phải sử dụng TOP thay vào đó, như thế này:

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

Tôi hy vọng rằng sẽ làm việc cho bạn.

Như Aaron nói, bạn cũng cần một số ORDER BY nếu bạn không muốn nhận hàng tùy ý.

+0

Hoạt động như một sự quyến rũ! Cảm ơn ! – bilbaoWon

+3

Chỉ cần lưu ý rằng không có 'ORDER BY' bạn sẽ nhận được một hàng tùy ý, và điều này có thể thay đổi từ thực hiện sang thực thi ... –

0

LIMIT không hoạt động và TOP(1) cũng có thể không hoạt động trong các câu lệnh lồng nhau.

Vì vậy, cách tiếp cận đúng là sử dụng OFFSET... FETCH NEXT:

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

Đó cơ bản cho TSQL để có một hàng (NEXT 1 ROWS ONLY) bắt đầu từ cái đầu tiên (OFFSET 0).

+0

Tại sao bạn nói rằng' Top (1) 'có thể không hoạt động trong một câu lệnh lồng nhau ? Tôi tò mò về điều này, bạn có phiền không? – user69513

+0

Không chắc chắn, nhưng tôi thấy rằng nó đang được thảo luận ở đây quá https://stackoverflow.com/questions/29358682/sql-top-1-syntax-for-a-nested-query – K48

Các vấn đề liên quan