2012-05-03 11 views
8

LIMITのクエリをMYSQLからSQL-Serverに変更しようとすると問題が発生します。(MySQL) "LIMIT"をSQL Serverに書き込む方法は?

SELECT * 
FROM tableEating 
WHERE person = '$identity' 
LIMIT 1; 

は、私はいくつかのクエリが、何の仕事でそれを変更しようとしました:ということ

チェック。

答えて

10

LIMITはT-SQLでは機能しません。

あなたはこのように、代わりにTOPを使用する必要があります。

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

私はそれがあなたのために働くことを願っています。

アーロン氏によれば、任意の行を取得したくない場合は、ORDER BYも必要です。

+0

魅力的な作品です!ありがとう! – bilbaoWon

+3

'ORDER BY'がなければ、任意の行を取得し、実行から実行に変わることに注意してください... –

0

LIMITは機能しません。TOP(1)はネストされたステートメントでも機能しない可能性があります。

そこで正しいアプローチはOFFSET... FETCH NEXTを使用することである。基本的に最初のもの(OFFSET 0)から出発して一列(NEXT 1 ROWS ONLY)を取るためにTSQLを指示

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

+0

なぜ' Top(1) 'がネストされたステートメントで動作しない可能性がありますか? ?私はこれについて好奇心が強いです、あなたは精巧に思いますか? – user69513

+0

わかりませんが、こちらもここで説明しています。https://stackoverflow.com/questions/29358682/sql-top-1-syntax-for-a-nested-query – K48

関連する問題