PDA

View Full Version : شمارش تعداد فیلد در کوئری



rash44
شنبه 21 فروردین 1395, 06:05 صبح
سلام

به چه صورت میشه تعداد فیلد خروجی یک کوئری را شمرد ؟



select id,name,family from table


برای این مثال ، نتیجه 3 رو به دست اورد

rash44
یک شنبه 22 فروردین 1395, 03:46 صبح
لطفا راهنمائی کنید

Davidd
یک شنبه 22 فروردین 1395, 07:33 صبح
سلام. دوست عزیز سوالت واضح نیست. برای چه کاری میخای؟ توی محیط برنامه یا توی محیط SSMS ؟

rash44
یک شنبه 22 فروردین 1395, 07:50 صبح
سلام
برای استفاده در php در زمان اتصال به اس کیو ال سرو

1 بخشی در گزارش ساز دارم ، که کاربر میاد 1 کوئری اس کیو ال و اطلاعات اتصال به سرور و دیتابیس رو وارد میکنه .
الان میخوام ، بعد از اجرای کوئری ، تعداد فیلدها رو به دست بیارم .

مثلا در پنجره New Query خود اس کیو ال سرور هم بتونم تعداد فیلدهای کوئری رو به دست بیارم

Davidd
یک شنبه 22 فروردین 1395, 08:13 صبح
به نظرم باید در انجمن PHP سوالتو بپرسی. بعد از اجرای کوئری نتیجه توی یک جدولی دیتاستی چیزی ریخته میشه. از تعداد ستون های جدول میتونی بفهمی نتیجه کوئری چندتا ستون داره.
اگه کوئری ساده باشه میشه با پردازش متن کوئری به جواب رسید مثلا با شمردن تعداد کاماهای بین SELECT و FROM.

rash44
یک شنبه 22 فروردین 1395, 08:19 صبح
سوال من اصلا ارتباطی با php نداره
من میخوام در محیط اس کیو ال این کار رو انجام بدم

کوئری از قبل مشخص نیست و هر بار توسط کاربر وارد میشه که بخوام ، را بشمارم

دستورات اس کیو ال دیدم که تعداد فیلدهای یک جدول رو بر میگردوند

csharpcollegian
یک شنبه 22 فروردین 1395, 10:03 صبح
سلام
از این کوئری استفاده کنید :

DECLARE @Query varchar(5000) = 'Your Query'
SELECT COUNT(1) AS ColumnCount
FROM sys.dm_exec_describe_first_result_set(@Query, NULL, 0)

rash44
دوشنبه 23 فروردین 1395, 01:11 صبح
سلام
از این کوئری استفاده کنید :

DECLARE @Query varchar(5000) = 'Your Query'
SELECT COUNT(1) AS ColumnCount
FROM sys.dm_exec_describe_first_result_set(@Query, NULL, 0)

ممنون
لطف کردید

rash44
دوشنبه 23 فروردین 1395, 04:14 صبح
آیا نام جدول کوئری هم میشه به دست اورد ؟

csharpcollegian
دوشنبه 23 فروردین 1395, 07:51 صبح
این که مستقیم کوئری رو بذارید داخل یک قطعه کد که نام جداول رو برگردونه بعید می دونم...ولی می تونید با استفاده از نام ستون ها در جدول نتیجه، به نام جداول برسید :

SELECT MyTable.Name AS TableName
FROM sys.Tables AS MyTable
INNER JOIN sys.Columns MyColumn
ON MyTable.OBJECT_ID = MyColumn.OBJECT_ID
WHERE MyColumn.Name = 'id' OR MyColumn.Name = 'name' OR ...