Gelişmiş Tümleştirme Hizmetleri ifadeleri örnekleri
Bu bölüm, birden çok işleçleri ve işlevleri birleştiren gelişmiş ifade örnekleri sağlar. Öncelik kısıtlaması veya koşullu Böl dönüşümü deyim kullanılırsa, bir Boolean değerlendirmelidir. Bu kısıtlama, ancak özelliği ifadeler, değişkenler, sütun Derived dönüşümü veya döngü için kapsayıcı içinde kullanılan ifadelere uygulanmaz.
Aşağıdaki örnekler AdventureWorks ve AdventureWorksDW2012 Microsoft SQL Serververitabanları. Her örnek, kullandığı tabloları tanımlar.
Boole ifadeleri
Bu örnek Ürün tablosu. Deyimi değerlendirir ay girişte SellStartDate sütun ve döner Haziran ayı ise true.
DATEPART("mm",SellStartDate) > 6 DATEPART("mm",SellStartDate) > 6
Bu örnek Ürün tablosu. Bölme yuvarlatılmış sonuç deyimi değerlendirir ListPrice sütun tarafından StandardCost sütun ve sonucu 1.5 büyükse true döner.
ROUND(ListPrice / StandardCost,2) > 1.50 ROUND(ListPrice / StandardCost,2) > 1.50
Bu örnek Ürün tablosu. Tüm üç işlemleri doğru olarak değerlendirmek, ifade doğru verir. Eğer Size sütun ve BikeSize değişken uyumsuz veri türleri varsa, açık bir döküm olarak gösterilen örnek ikinci ifadesi gerektirir. Döküm dt_wstr için dize uzunluğunu içerir.
MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size != @BikeSize MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size != (DT_WSTR,10)@BikeSize MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size != @BikeSize MakeFlag == TRUE && FinishedGoodsFlag == TRUE && Size != (DT_WSTR,10)@BikeSize
Bu örnek CurrencyRate tablosu. Ifade tablolar ve değişkenlerin değerleri karşılaştırır. Varsa true döndürür girişleri FromCurrencyCode veya ToCurrencyCode sütunları değişken değerlerine eşit ve eğer değeri AverageRate'e büyüktür, değer EndOfDayRate.
(FromCurrencyCode == @FromCur || ToCurrencyCode == @ToCur) && AverageRate > EndOfDayRate (FromCurrencyCode == @FromCur || ToCurrencyCode == @ToCur) && AverageRate > EndOfDayRate
Bu örnek para tablosu. Deyim true döndürür ilk karakteri ad sütun değil a veya a
SUBSTRING(UPPER(Name),1,1) != "A" SUBSTRING(UPPER(Name),1,1) != "A"
Aşağıdaki ifade, aynı sonuçları sunmakla birlikte, tek bir karakter büyük harfe dönüştürülür çünkü daha etkilidir.
UPPER(SUBSTRING(Name,1,1)) != "A" UPPER(SUBSTRING(Name,1,1)) != "A"
Olmayan ifadeler
Sigara-Boolean ifadeler Derived sütun dönüşümü, özellik ifadeler ve döngü için kapsayıcı içinde kullanılır.
Bu örnek kişi tablosu. Baştaki ve sondaki boşluk gelen ifade kaldırır ad, MiddleName, ve Soyadı sütunlar. İlk harfini ayıklar MiddleName sütun null değilse birleştirir ikinci ve değerleri ad ve Soyadıve değerleri arasında uygun boşluk ekler.
TRIM(FirstName) + " " + (!ISNULL(MiddleName) ? SUBSTRING(MiddleName,1,1) + " " : "") + TRIM(LastName) TRIM(FirstName) + " " + (!ISNULL(MiddleName) ? SUBSTRING(MiddleName,1,1) + " " : "") + TRIM(LastName)
Bu örnek kişi tablosu. Girişleri ifadeyi doğrulayan Selamlama sütun. O döner bir Selamlama girişi veya boş bir dize.
(Salutation == "Sr." || Salutation == "Ms." || Salutation == "Sra." || Salutation == "Mr.") ? Salutation : "" (Salutation == "Sr." || Salutation == "Ms." || Salutation == "Sra." || Salutation == "Mr.") ? Salutation : ""
Bu örnek Ürün tablosu. Deyimin ilk karakteri dönüştüren renk sütun büyük harf ve küçük harf karakterleri kalan dönüştürür.
UPPER(SUBSTRING(Color,1,1)) + LOWER(SUBSTRING(Color,2,15)) UPPER(SUBSTRING(Color,1,1)) + LOWER(SUBSTRING(Color,2,15))
Bu örnek Ürün tablosu. İfade bir ürün satılmış ve "Bilinmeyen" dizesini döndürür ay sayısını hesaplar. ya da, SellStartDate ya da SellEndDate sütun null içerir.
!(ISNULL(SellStartDate)) && !(ISNULL(SellEndDate)) ? (DT_WSTR,2)DATEDIFF("mm",SellStartDate,SellEndDate) : "Unknown" !(ISNULL(SellStartDate)) && !(ISNULL(SellEndDate)) ? (DT_WSTR,2)DATEDIFF("mm",SellStartDate,SellEndDate) : "Unknown"
Bu örnek Ürün tablosu. Tarih biçimlendirme ifadesi hesaplar StandardCost sütun ve bir duyarlılık sonucu iki yuvarlar. Sonucu yüzde olarak gösterilir.
ROUND(ListPrice / StandardCost,2) * 100 ROUND(ListPrice / StandardCost,2) * 100
ilişkili Görevler
Bir veri akışı bileşeni bir ifade kullanma
Dış Kaynaklar
Teknik makale, SSIS ifade Cheat Sheet, pragmaticworks.com üzerinde