PDA

View Full Version : مشکل کد زیر در پیدا کردن شاگرد دوم چیست



mohsen.nsb44
دوشنبه 29 فروردین 1390, 10:35 صبح
با سلام با کد زیر می توان شاگرد اول را مشخص کرد

select
top 1 'شاگرد اول' as 'first',id,num from TN
order by num desc
حال می خوام شاگرد دوم رو پیدا کنم که از کد زیر استفاده کردم اما ارور میده و این کد کار نمی کنه

select top 1 id,num from TN where id not in(select
top 1 'شاگرد اول' as 'first',id,num from TN
order by num desc)
ارور زیر داده می شود
Msg 116, Level 16, State 1, Line 8
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

m * h * d
دوشنبه 29 فروردین 1390, 13:02 عصر
select top 1 id,num from TN where id not in(select
top 1 id,num from TN
order by num desc)


این پاسخ شماست دوست عزیز

محمد سلیم آبادی
دوشنبه 29 فروردین 1390, 14:06 عصر
SELECT * FROM (SELECT *, ROW_NUMBER() OVER(ORDER BY num DESC) AS rnk FROM TN) AS D WHERE rnk = 2;


;WITH C AS
(SELECT TOP 2 * FROM TN ORDER BY num DESC)
SELECT TOP 1 * FROM C ORDER BY num ASC

behrouzlo
دوشنبه 29 فروردین 1390, 14:09 عصر
در Sub query فقط باید یک فیلد آورده یعنی به شکل زیر

select top 1 id,num from TN where id not in(select
top 1 id
order by num desc)

محمد سلیم آبادی
دوشنبه 29 فروردین 1390, 21:28 عصر
در Sub query فقط باید یک فیلد آورده یعنی به شکل زیر

select top 1 id,num from TN where id not in(select
top 1 id
order by num desc)

باید کد به این شکل نوشته بشه:

SELECT TOP 1 id, num FROM TN WHERE id NOT IN (SELECT top 1 id FROM TN ORDER BY num DESC) ORDER BY num DESC;