Son Haberler
Anasayfa / Yazılım / SQL / SQL’de SELECT Deyimi Uygulamaları

SQL’de SELECT Deyimi Uygulamaları

Bu yazımda SQL Server üzerinde SELECT deyiminin kullanımına örnekler vermeye devam ediyorum. Şimdi ilk vereceğim örnek şu, diyelim ki bir personel bilgilerini içeren bir tablonuz var. Bu tabloda personel adı ve soyadı ayrı ayrı alanlarda tutulmakta, siz bir sorgu ile bu alanları listeleyeceksiniz ancak bu iki alanın birleşmiş olarak yapılmasını istiyorsunuz. Bunu yapabilir misiniz? SQL’de elbette yapabilirsiniz. Yeni bir Query penceresi açıyoruz ve Adventureworks veritabanı üzerinde çalışıyoruz. Aşağıdaki şekilde sorgumuzu yazalım :

SELECT FirstName + ' ' + LastName AS 'Personel Adı Soyadı' FROM Person.Person

Bu deyimimiz sonunda aşağıdaki gibi sonuçlar alırız :

131201

Şimdi SELECT sorgumuzda Person.Person tablosundan FirstName ve LastName alanlarındaki verileri çektik ancak bunları listelerken her iki veriyi toplattık aralarına bir boşluk karakteri ekledik ve bunları AS deyimi kullanarak tabloda var olmayan bir alan adı altında, örneğimiz de Personel Adı Soyadı altında listeledik. Görüldüğü gibi listelediğimiz verileri aynı alanda toplama işlemi yapabiliyor ve istediğimiz başlık adı altında listeleme imkanına sahip olduğumuzu görebiliyoruz.

AS deyimini kullanmak opsiyoneldir, AS kullanamadan da aynı sorguyu çalıştırdığımızda aynı sonucu alırız.

SELECT FirstName + ' ' + LastName  'Personel Adı Soyadı' FROM Person.Person

Eğer ben burada Personel Adı Soyadı olarak yeni oluşacak kolon adını tek kelimeden oluşan bir isim verse idim yani içinde boşluk karakteri olmasa idi, tırnak işareti kullanmam gerekmezdi. Yani aşağıdaki şekillerde de kullanabiliriz;

SELECT FirstName + ' ' + LastName  Personel FROM Person.Person
SELECT FirstName + ' ' + LastName  AS Personel FROM Person.Person

Bunların sonucu hep aynıdır. Ayrıca tek tırnak yerine çift tırnakda kullanabilirsiniz, sonuç değişmeyecektir ve hatalı olmayacaktır.

SELECT FirstName + ' ' + LastName  AS "Personel" FROM Person.Person
SELECT FirstName + ' ' + LastName  AS "Personel Ad Soyad" FROM Person.Person
SELECT FirstName + ' ' + LastName  "Personel Ad Soyad" FROM Person.Person

Bu sorguların hepsi aslında aynıdır. AS deyimi ile aslında okunabilirliği arttırmış oluyoruz. Çünkü AS deyiminden sonra gelen ifade bizim takma isme sahip yani alias isme sahip kolonumuz oluyor. Eğer sorgum üzerinde diyelim ki FirstName ve LastName arasında virgül koymazsam SQL LastName alanını bir alias olarak yeni oluşturulacak olan alan olarak kabul eder, ve first name içindeki verileri LastName başlığı altında gösterir.

SELECT FirstName LastName FROM Person.Person

Bu deyimin sonucunda;

131202

Görüldüğü üzere FirstName bilgilerini LastName adı altında altım. Şu an bunu bilerek yaptık ama bilmeyerekde olabilirdi ve karşı taraf bu yanlış isimlendirme ve yanlış verilerin listelenmesi nedeni ile yanılgıya düşebilirdi. Bir virgül bakın nelere hikmet oldu 🙂

Dolayısı ile mümkün olduğunca fazla kod yazın, sürekli kod yazın ve otomatik kod scripti üretmeye alışmayın. Burdan da kod alanlarını kopyalamayın yazın. Yazmak sizi geliştirecektir. SELECT ile bir kaç sorgu daha yapıp, yazıma son vermek istiyorum. Yine Adventureworks veri tabanı üzerinde işlem yapacağım.

1) Sales.Customers tablosundan CustomerID, PersonID ve AccountNumber bilgisini listeleyen sorguyu yazalım

SELECT CustomerID, PersonID, AccountNumber FROM Sales.Customer

2) Production.Product tablosundan ProductID, Name, ProductNumber, Color ve StandardCost alanlarını listeleyen sorguyu yazalım.

SELECT ProductID,Name,ProductNumber,Color,StandardCost FROM Production.Product

3) Sales.SalesOrderHeader tablosundan SalesOrderID, CustomerID, CreditCardID bilgilerini listeleyelim.

SELECT SalesOrderID, CustomerID, CreditCardID FROM Sales.SalesOrderHeader

4) Person.Person tablosundan FirstName ve LastName alanlarını Adı Soyadı şeklinde açılacak yeni alanda listeleyelim.

SELECT FirstName + ' ' + LastName AS "Adı Soyadı" FROM Person.Person

5) Person.Person tablosundan LastName, FirstName ve Title bilgisini listeleyelim.

SELECT LastName, FirstName, Title FROM Person.Person

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir