SQL Server’da Where ve Order By Kısımlarında Alias Kullanımı

Herkese merhaba,

Bu yazıda size SQL Server’da Where ve Order By Kısımlarında Alias kullanımından bahsedeceğim.

SQL Server’da kod yazarken Alias yani takma ad ifadelerini Where ve Order By ile kullanmışınızdır. Where ile Alias kullanımında hata alınırken Order By ile hata alınmaz. Bunun nedenini inceleyelim. Örnek kodları aşağıda görmektesiniz. Örnekler Northwind veritabanı kullanılarak yapıldı.

--Where kısmında alias kullanımı (Hatalı) - Invalid column name 'kategoriid' hatası

SELECT  kategoriler.CategoryID AS kategoriid
FROM    dbo.Categories kategoriler
WHERE   kategoriid = 2

--Where kısmında alias kullanımı (Doğru kullanımı)

SELECT  altsorgu.kategoriid ,
        altsorgu.CategoryName
FROM    ( SELECT    CategoryName ,
                    CategoryID AS kategoriid
          FROM      dbo.Categories
        ) AS altsorgu
WHERE   altsorgu.kategoriid = 2

--Order by kısmında alias kullanımı

SELECT  kategoriler.CategoryID AS kategoriid
FROM    dbo.Categories AS kategoriler
ORDER BY kategoriid DESC

SQL Server’da sorgular işlenirken belirli bir sıraya göre işlem yapılır. Bu sıra From -> On -> Where -> Select -> Order By şeklindedir. Sorguda neden hata aldığınıza gelirsek; Where kısmı SQL Server’da Select ifadesinden önce çalıştığı için bize böyle bir hata verir. Order By ifadesi Select ifadesinden sonra çalıştığı için bize böyle bir hata vermez. Where ifadesi ile Alias kullanabilmek için sorgularımızı altsorgu biçiminde revize etmemiz gerekmektedir. Yukarıdaki sorgularda bunların örneklerini görmektesiniz.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

583 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!