PDA

View Full Version : select بر روی خروجی یه Select



ali643
شنبه 09 دی 1385, 11:31 صبح
سلام


چطوری میتونم از روی خروجی یک دستور Select یک دستور Select دیگه بزنم؟؟؟


مرسی

sahar_msd
شنبه 09 دی 1385, 11:42 صبح
سلام
شما می تونین با یک پرانتز select بعدی خودتون رو بنویسین
با این کار با خروجی select ای که توی پرانتز هست select قبل از پرانتز اجرا می شه

ali643
شنبه 09 دی 1385, 14:45 عصر
میشه یه مثال بزنید؟؟

reza_rad
شنبه 09 دی 1385, 14:53 عصر
select a.* from
(
select * from table2
where ...
)a

zerobit-ltd
یک شنبه 10 دی 1385, 10:18 صبح
select *
from tbl1
where tbl1.id = (select id
from tbl2
where <condition>)
میتونی از in, all, exists, any, some هم استفاده کنی.

ali643
یک شنبه 10 دی 1385, 10:53 صبح
هر دوتا دستور رو یک Table باید انجام بشه
یعنی بایه دستور 100 تا رکورد بر می گرده و حالا یه دستور selectدیگه بنویسم که بر اساس 100 تا رکوردی که قبلا بازگشت داده شده عمل کنه


مرسی

whitehat
یک شنبه 10 دی 1385, 13:36 عصر
لزومی نداره که از دو Select استفاده کنید کافیه با استفاده از Top در کوئری خود 100 رکورد اول را بر گردانید


select top 100 * from ....

ali643
یک شنبه 10 دی 1385, 13:46 عصر
اخرش نتونستم منظورمو برسونم
در یک دستور Select بر اساس شرطی 100 تا رکورد انتخاب میشه و برگشت داده میشه و حالا من می خوام رو این 100 تا رکورد برگشت داده شده یه select دیگه بزنم که مثلا 5 تا رکورد برگشت داده بشه


مرسی

whitehat
یک شنبه 10 دی 1385, 13:56 عصر
selec top 5 * from
(
Select top 100 * from Your_table_name
where [هر شرطی برای 100 رکورد]
) as Temp_Table
where [هر شرطی برای 5 رکورد]
موفق باشید

اَرژنگ
یک شنبه 10 دی 1385, 14:57 عصر
هر دوتا دستور رو یک Table باید انجام بشه
یعنی بایه دستور 100 تا رکورد بر می گرده و حالا یه دستور selectدیگه بنویسم که بر اساس 100 تا رکوردی که قبلا بازگشت داده شده عمل کنه
مرسی
این درست نیست. میشه از جدولهایه مختلف باشند.

ali643
یک شنبه 10 دی 1385, 17:55 عصر
این درست نیست. میشه از جدولهایه مختلف باشند.

این چیزیه که برا من تعریف شده هستش و خودم نمی تونم نظری بدم گفتند اینجوری ما هم گفتیم چشم.

مرسی از whitehat به خاطر Script

از همه دوستان ممنون که وقت گذاشتن

darvishiali
دوشنبه 11 دی 1385, 11:49 صبح
سلام؛

برای اینکه از نتیجه یک Query که یک DataSet بر می گردونه، مثلا همون 100 تا رکوردی که گفتین، بتونیم استفاده کنیم، باید به اون کوئری یه Alias اختصاص بدیم. مثال :



SELECT MyQuery.* FROM (SELECT * FROM Table1 LEFT OUTER JOIN Table2 ON Table1.Field1=Table2.Field1) MyQyery


برای SELECT ای که با رنگ سبز نوشتم یک Alias به نام MyQuery تعریف کردیم و از آن همه فیلدها (*.MyQuery) را انتخاب کردیم. حالا اگه بخوایم برای MyQuery نام فیلدها رو تعریف کنیم، باید بعد از Alias توی پرانتز نام تمام فیلدها رو ذکر کنیم.



SELECT MyQuery.* FROM (SELECT ...) MyQuery (Field1, Field2, Field3)