PDA

View Full Version : بدست آوردن تایپ فیلدهای یک سلکت



یوسف زالی
یک شنبه 20 آذر 1390, 08:56 صبح
با سلام خدمت دوستان.
راهی سراغ دارید که بشه نوع فیلدهای یک سلکت رو فهمید؟
منظور من دقیقا "سلکت" هست نه جدول.
ببینید:
select cast(1 as decimal) as N, 'test' as X

نمی خوام از جداول مجازی استفاده کنم.
کسی در این رابطه چیزی به ذهنش می رسه؟
ممنونم.

tazarvmmr
یک شنبه 20 آذر 1390, 09:56 صبح
سلام
من دقیقا متوجه منظورت نشدم! ولی فکر کنم منظورت یک همچنین چیزی باشه:


SELECT
column_name 'Column Name',
data_type 'Data Type'

FROM
information_schema.columns
WHERE
table_name = 'Persons'

یوسف زالی
یک شنبه 20 آذر 1390, 11:19 صبح
سلام.
گفتم که منظورم یک سلکت هست نه جدول.
مثالش هم بالا زدم

حمیدرضاصادقیان
یک شنبه 20 آذر 1390, 11:24 صبح
سلام.
به خودی خود که نمیشه. مگر این که شما فیلدهاتو با کد پست 2 Join کنید و نوع اونها رو در یک ستون مجزا نمایش بدید.

یوسف زالی
یک شنبه 20 آذر 1390, 11:36 صبح
جناب صادقیان وقتی نام جدول نداشته باشیم؟؟
این سلکت ها موقع generate حتما در جایی به صورت موقت وجود دارند. اما هرچی تو TempDB گشتم چیزی ندیدم.
من تونستم با اینسرت در جدول موقتی این کارو کنم اما فکر کنم شما متوجه منظور من نشدید.

مثلا در این مثال :
select cast(1 as decimal) as N, 'test' as X
چطور join کنم تا نوع داده هام در خروجی ظاهر شه؟

می شه مثال بزنید؟

tazarvmmr
یک شنبه 20 آذر 1390, 12:00 عصر
سلام.
گفتم که منظورم یک سلکت هست نه جدول.
مثالش هم بالا زدم

راجع بهش فکر میکنم ولی ممنون میشم اگه بگید برای چه کاری بهش نیاز دارید

یوسف زالی
یک شنبه 20 آذر 1390, 16:17 عصر
برای انتقال اطلاعات وقتی سلکشن های متفاوتی از جداول join شده به یک ساختار متفاوت در مقصد ارسال می شه لازمه که ساختار سلکت ایحاد شده در مقصد باز سازی بشه.

حمیدرضاصادقیان
سه شنبه 29 آذر 1390, 09:27 صبح
برای اینکار راههای متفاوتی هست. یکی اینکه یک جدول Temp بسازید و داده ها رو درون اون قرار بدید و مطابق اون یک ساختار در مقصد بسازید. یا اینکه بدونید در جدول مقصد داده های جداولتون به چه شکلی هست.
وگرنه به این شکل کوئری خیلی سنگین خواهد شد (اگر قابل پیاده سازی باشه)

یوسف زالی
سه شنبه 29 آذر 1390, 15:48 عصر
گاهی مواقع مبدا کوئری سلکت نیست. بلکه exec هست.
دردسر شده ...
در هر حال ممنون