سلام و عرض ادب خدمت دوستان عزیزم
امیدوارم حالتون خوب باشه
در بحث Logical Processing شاید این سوال برای شما پیش اومده باشه که وقتی برای یک فیلدی در Select میایم Alias تعریف می کنیم چرا د رهمون Select نمیتونیم از اون Alias استفاده کنیم.
به این مثال دقت کنید.
Select
Year(OrderDate) as YearORderDate,
YearOrderDate+1 as NewOrderDate
From
Sales.Orders
توی این دستور شما نمیتونید از فیلد yearOrderDate استفاده کنید . درسته که در Logical Processing اینجا Select پردازش شده ولی دلیل اصلی این هست که تمامی عملیاتی که در Select قرار میگیره به جز distinct و top در یک دسته انجام میشه و در عمل همه اونها باهم پردازش و ایجاد میشن به همین خاطر دسترسی به اون آلیاس هنوز وجود نداره و شما حتما باید از year(OrderDate) در خط دوم استفاده کنید.
امیدوارم لذت برده باشین
شاد و پرانرژی باشید
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL_Tips
#Logical_Processing
امیدوارم حالتون خوب باشه
در بحث Logical Processing شاید این سوال برای شما پیش اومده باشه که وقتی برای یک فیلدی در Select میایم Alias تعریف می کنیم چرا د رهمون Select نمیتونیم از اون Alias استفاده کنیم.
به این مثال دقت کنید.
Select
Year(OrderDate) as YearORderDate,
YearOrderDate+1 as NewOrderDate
From
Sales.Orders
توی این دستور شما نمیتونید از فیلد yearOrderDate استفاده کنید . درسته که در Logical Processing اینجا Select پردازش شده ولی دلیل اصلی این هست که تمامی عملیاتی که در Select قرار میگیره به جز distinct و top در یک دسته انجام میشه و در عمل همه اونها باهم پردازش و ایجاد میشن به همین خاطر دسترسی به اون آلیاس هنوز وجود نداره و شما حتما باید از year(OrderDate) در خط دوم استفاده کنید.
امیدوارم لذت برده باشین
شاد و پرانرژی باشید
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL_Tips
#Logical_Processing
سلام خدمت دوستان عزیزم
امیدوارم حالتون خوب باشه.
یک نکته ای رو جاهای مختلف دیدم خواستم بهتون گوشزد کنم.
شاید شنیده باشین که در view ها یا به طور کل در Table Expression ها از order by نمیتونید استفاده کنید و حتما باید Top باشه تا بتونید از order by استفاده کنید.
و حتما هم یا دیدین یا خودتون انجام دادین که به این صورت مثلا بنویسید
Create view vw1
select top 100 percent ...
from ...
order by id
go
خوب باید خدمتتون عرض کنم که این Order by هیچ تضمینی به مرتب شدن خروجی شما در بیرون نمیکنه.
این order by در واقع برای همون سلکت داخل view هست که مثلا شما میخواهید یک تعداد رکورد خاص رو برگردونید.
برای سلکت های بیرونی مثل این هست که شما دارید از یک جدول مجازی سلکت میکنید پس هیچ گارانتی در خصوص مرتب بودن داده ها نداره. و اگر دارید به این صورت مینویسید ، میتونید به راحتی حذفش کنید و در سلکت اصلیتون از Order by استفاده کنید.
امیدوارم لذت برده باشین
شاد و پرانرژی باشید
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL_Tips
#Logical_Processing
امیدوارم حالتون خوب باشه.
یک نکته ای رو جاهای مختلف دیدم خواستم بهتون گوشزد کنم.
شاید شنیده باشین که در view ها یا به طور کل در Table Expression ها از order by نمیتونید استفاده کنید و حتما باید Top باشه تا بتونید از order by استفاده کنید.
و حتما هم یا دیدین یا خودتون انجام دادین که به این صورت مثلا بنویسید
Create view vw1
select top 100 percent ...
from ...
order by id
go
خوب باید خدمتتون عرض کنم که این Order by هیچ تضمینی به مرتب شدن خروجی شما در بیرون نمیکنه.
این order by در واقع برای همون سلکت داخل view هست که مثلا شما میخواهید یک تعداد رکورد خاص رو برگردونید.
برای سلکت های بیرونی مثل این هست که شما دارید از یک جدول مجازی سلکت میکنید پس هیچ گارانتی در خصوص مرتب بودن داده ها نداره. و اگر دارید به این صورت مینویسید ، میتونید به راحتی حذفش کنید و در سلکت اصلیتون از Order by استفاده کنید.
امیدوارم لذت برده باشین
شاد و پرانرژی باشید
حمیدرضا صادقیان
@Hamidreza_Sadeghian
#TSQL_Tips
#Logical_Processing