Nis 24
T-SQL’de iki string’i birleştirmek için CONCAT metodu kullanılır. Bazı durumlarda aynı satırdaki verileri değil alt altta durunda verileri birleştirmek isteyebiliriz. Bunun için klasik değer birleştirilme yöntemi kullanılır. Örneğin bir müşteriye ait ikinci bir tabloda row olarak duran birden fazla telefonunu, okuduğu gazeteleri, hobilerini okuyup tek bir satırda gösterme ihtiyacı duyabiliriz. Musteri ve MusteriTelefon tabloları olduğunu düşünelim.
Musteri
————–
1 Ahmet Kaymaz
2 Mehmet Kaymaz
MusteriTelefon
————–
1 (0212)111
1 (0533)111
2 (0216)111
2 (0542)111
İlk işlem olarak örneğin ID’si 1 olan Ahmet Kaymaz’ı telefonlarını birleştirerek getirelim. Bunun için tipik string birleştirmesi yapacağız. Read the rest of this entry »
Şub 23
SQL Server üzerinde farklı kaynaklardan data transferi, toplu aktarımlar ve yerel işlemler için çoğu zaman Data Transformation Services (DTS) denilen Veri Transfer Servisini kullanırız. Hatta bu servis aracılığıyla hazırladığımız paketleri SQL Server Agent yönetiminde Job işlemlerine alarak belli peryotlarda çalışmasını sağlarız. Özellikle kurumsal uygulamalarda dağıtık kaynaklardan belli anlarda verileri çekmek ve üzerinde işlem yaparak yerel veritabanlarına kaydetmek için DTS’ler vazgeçilmez bir alışkanlık haline gelir. MSDB veritabanında tutulan bu paketler, sunduğu zengin connection provider ve tasklarla ciddi bir kolaylık sağlar. Bu bölümde DTS paketleri içindeki genel değişken tanımlamanın nasıl yapılacağını ve dışardan DTS’lerin nasıl parametrik haline getirileceğini göreceğiz. Read the rest of this entry »
Oca 02
UNION ve UNION ALL ifadeleri iki sorgu sonucunun birleştirilmesi için kullanılır. Tek farkı, UNION mükerrer kayıtları getirmez, UNION ALL ise tüm kayıtları olduğu gibi listeler. Önceki yazıda her grubun ilk kayıt edilmiş 2 ürününü UNION yöntemiyle getirmiştik. Aynı yöntemi kullananarak her grubun son kayıt edilmiş 2 ürünü alacağız. Bunun için aklımıza ilk gelen query şudur; tablodaki kayıtları UrunId’ye göre büyükten küçüğe sıralayıp TOP 1 ile en üsttekini almaktır. Read the rest of this entry »
Oca 02
Birbirleriyle ilişkili iki tablo düşünelim. Birinci tabloda başlık bilgileri ikinci tabloda ise bu başlığa ait detayların bulunduğunu varsayarak her başlıktan n tane detay kaydını getirmek için nasıl bir query yazmamız gerekir. Özellikle haber sitelerinin anasayfalarında her gruptan belli kriterlere uygun n kayıt getirmek veya yüksek stoklu ürün gruplarının en yüksek stoklu n tane ürününü listelemek için bu tür pratik querylere ihtiyaç duyarız.
Read the rest of this entry »
Oca 02
SQL Server’da yapacağımız aramalar, herhangi özel bir ayar uygulamamışsak default olarak case insensitive çalışır yani kayıtlar üzerinde arama yaparken değerler, büyük-küçük harf duyarlı değildir. Bu yüzden SQL Server üzerinde SELECT … FROM .. WHERE UserPwd=’abc’ ile SELECT … FROM .. WHERE UserPwd=’ABC’ ifadesi aynı sonucu getirir. Özellikle kullanıcı ile ilgili güvenlik bilgilerinin sorgulandığı durumlarda işlemlerin büyük-küçük harf duyarlı olmasına ihtiyaç duyabiliriz. Bunu sağlamanın birkaç yöntemi bulunmaktadır. Burada en çok kullanılan yöntemleri örneklendirmeye çalışacağız. Read the rest of this entry »
Nis 22
Önceki yazıda mükerrer eden kayıtları sahip oldukları identity değeri sayesinde silebiliyorduk. Peki Sql Server’daki bu tabloda kayıtları birbirinden ayıracak herhangi bir Primary Key veya Unique Constraint yoksa kayıtları nasıl sileceğiz. L_User isimli tablosunda kayıtları şu şekilde durduğunu varsayalım.
Read the rest of this entry »
Nis 21
Sql Server’da bir tablodaki tekrar eden kayıtları nasıl silebiliriz ?
L_User isminde bir tablo oluşturup tabloya bir kaç kayıt girelim.
CREATE TABLE [dbo].[L_User] (
[ColumnId] [int] IDENTITY (1, 1) NOT NULL ,
[UserName] [char] (10) NULL ,
[UserPwd] [char] (10) NULL
) ON [PRIMARY]
Read the rest of this entry »
Nis 14
SQL Server’da bir kolonda bulunan dataları belli koşula göre iki kolon şeklinde ifade etmeye çalışalım. Bunun için güzel bir örnek olarak tüm alış, satış, müşteri iaderlerin tutulduğu bir tabloyu düşünelim. HAREKET isimli bu tabloda hareketleri birbirinden ayırmak HareketTip isminde bir kolon kullanacağız. Bu kolonda “A”, alış, “S”, satış anlamına gelmektedir. Tabloda yıllara göre hareket özetleri verilmiştir.
CREATE TABLE [dbo].[HAREKET](
[HareketId] [int] IDENTITY(1,1) NOT NULL,
[HareketTip] [char](1) COLLATE Turkish_CI_AS NULL,
[Yil] [int] NULL,
[Adet] [int] NULL
) ON [PRIMARY]
Örnek olarak aşağıdaki verileri girelim.
| HareketId |
HareketTip |
Yil |
Adet |
| 1 |
A |
2001 |
10 |
| 2 |
A |
2001 |
20 |
| 3 |
S |
2001 |
5 |
| 4 |
S |
2002 |
4 |
| 5 |
A |
2002 |
14 |
Read the rest of this entry »
Recent Comments