2016-09-05 20 views
1

私はのテーブルの最後の行の値を別のテーブルに入力しなければなりません。そのため、挿入クエリ内では、私が望む値を取得するためにクエリを選択することがありました。 クエリはエラーなしで実行されます。しかし最後の行の代わりにテーブルの1行目が得られます。あなたが降順に順序を変更した場合多分それが仕事だSELECT ref_no FROM MASTER_CAL ORDER BY ref_no DESC LIMIT 1テーブルの最後の行の列を選択する方法は?

+2

'ORDER BY'がなければ' TOP'は無意味です。 –

答えて

-1

はこれを試してみてください、私のクエリです。例えば

SELECT top 1 ref_no FROM MASTER_CAL ORDER BY ID DESC; 
+0

このMySQL構文はSQL Serverでは動作しません。 –

+0

エラーが発生します。ところで、私はこれについての答えを見つけた – Mike

+0

大丈夫、私の悪い。 'SELECT TOP 1 ref_no FRAS MASTER_CAL ORDER BY ref_no DESC' –

4
SELECT TOP 1 * FROM Table ORDER BY ID DESC 
or 
SELECT TOP 1 * FROM Table ORDER BY POST_DATE DESC 
1

:ここ

SELECT top 1 ref_no FROM MASTER_CAL 
+0

1つのレコードだけを選択したい場合は、' limit 1 'も使用できます。 –

2

あなたの最後の行は、あなたのソート順に依存します。

これを行うたびに正しい結果が得られることを確認してください。

SELECT top 1 ref_no FROM MASTER_CAL ORDER BY ID DESC 
+1

はい、これは私が何とか見つけた答えです。ちなみにThanksxの答えは – Mike

+0

U r welcome - ハッピーコーディング –

0

目的の結果を得るには、ORDER BY句を使用します。

テーブルに増分ID Columがある場合は、それを使用してテーブルをソートします。そうでない場合は、row_ numberなどの関数を使用してnumberテーブルをソートし、numberカラムをソートします。

テーブルにID列IDがあるとします。

SELECT top 1 ref_no 
    FROM MASTER_CALL 
    ORDER BY ID DESC 

テーブルにID列がない場合は、以下のスクリプトを使用してください。

with cte_1 
As (SELECT ref_no, ROW_NUBER(ORDER BY (select 1)) RNO 
    FROM MASTER_CALL) 
SELECT ref_no 
FROM cte_1 
    ORDER BY RNO DESC 
0

この回答が見つかりました。
これは私の問い合わせであり、完全に機能します。

SELECT top 1 ref_no FROM MASTER_CAL order by ref_no desc 
0

あなたは、インデックス付きの列その後、

SELECT top 1 ref_no FROM MASTER_CAL order by ref_no desc 

それとも、そのようなものを持っていない場合は、次のように余分な列のROW_NUMBER()を作る必要がありますを使用して、のは「ref_no」を言わせてをお持ちの場合:

select top 1 a.ref_no 
from 
(
    select SlNo=row_number() over(order by (select 1)), ref_no 
    from MASTER_CAL 
) a 
order by slno desc 
0

同時に一時テーブルに挿入し、それはあなたが自動を持っていない場合でも動作する

から選択crement列

DECLARE @table table (id int) 

INSERT INTO MASTER_CAL 
OUTPUT inserted.id into @table 
VALUES('XYZ') 

SELECT id from @table 
0
SELECT ref_no FROM MASTER_CAL ORDER BY ID DESC limit 0,1 

私はあなたのAUTO_INCREMENTフィールドがIDだと思うと、テーブル名がコードの上MASTER_CAL .Thenであるが、この表の最後に挿入された行を見つけるのに役立ちます。Identity Increment = 1として設定あなたのテーブルref_no列で

+0

質問はSQL Serverについてですが、SQL Serverでは制限を使用できません。 – Munavvar

0

あなたは、このクエリを試すことができます。

SELECT TOP 1 ref_no FROM MASTER_CAL ORDER BY ref_no DESC 

このクエリは、あなたが望む正確な結果を与えます。

関連する問題