Aracılığıyla paylaş


Gelişmiş Tümleştirme Hizmetleri ifadeleri

Bu bölüm, birden çok işleçleri ve işlevleri birleştiren gelişmiş ifade örnekleri sağlar.Yoksa bir ifade kullanılan bir öncelik kısıtlaması veya koşullu Böl dönüştürme, Boole olarak değerlendirmek gerekir.Kısıtlama, ancak, özellik ifadeler, değişkenler, türetilmiş sütun dönüştürme veya döngü için kapsayıcı kullanılan ifadeler için geçerli değildir.

Aşağıdaki örnekleri kullanın AdventureWorks2008R2 veritabanı.Her örnek, kullandığı tabloları tanımlar.

Boole deyimleri

  • Bu örnek kullanır Product tablo.Ay girişinde ifade olur SellStartDate sütun ve doğru'yu verir ay Haziran ise daha.

    DATEPART("mm",SellStartDate) > 6
    
  • Bu örnek kullanır Product tablo.ifade Bölme yuvarlak sonucunu değerlendiren ListPrice sütuna göre StandardCost sütun ve sonucu 1. 5 ' büyük ise true döndürür.

    ROUND(ListPrice / StandardCost,2) > 1.50
    
  • Bu örnek kullanır Product tablo.Tüm üç işlemleri doğru olarak değerlendirmek, ifade doğru verir.If the Size column and the BikeSize variable have incompatible data types, the expression requires an explicit cast as shown the second example.Cast dt_wstr için dize uzunluğunu içerir.

    MakeFlag ==  TRUE && FinishedGoodsFlag == TRUE && Size != @BikeSize
    MakeFlag ==  TRUE && FinishedGoodsFlag == TRUE  && Size != (DT_WSTR,10)@BikeSize
    
  • Bu örnek kullanır CurrencyRate tablo.ifade, tablolar ve değişkenlerin değerlerini karşılaştırır.İse doğru verir girişleri FromCurrencyCode veya ToCurrencyCode sütunlar için değişken değerlerinin eşit ve eğer değeri AverageRate büyüktür, değeri EndOfDayRate.

    (FromCurrencyCode == @FromCur || ToCurrencyCode == @ToCur) && AverageRate > EndOfDayRate
    
  • Bu örnek kullanır Currency tablo.ifade true verir ilk karakteri Name sütun değil a veya a.

    SUBSTRING(UPPER(Name),1,1) != "A"
    

    Aşağıdaki ifade, aynı sonuçlar sağlar, ancak yalnızca bir karakter büyük harfe dönüştürülür daha etkili, çünkü.

    UPPER(SUBSTRING(Name,1,1)) != "A"
    

Boole olmayan ifadeler

Non-Boole deyim türetilen sütun dönüştürme özellik ifadeler ve döngü için kapsayıcı kullanılır.

  • Bu örnek kullanır Person tablo.Baştaki ve sondaki boşlukları den ifade kaldırır FirstName, MiddleName, ve LastName sütunlar.İlk harfini ayıklar MiddleName sütun ise, null, ilk orta ve değerleri birleştirir FirstName ve LastName, değerleri arasında uygun boşluk ekler ve

    TRIM(FirstName) + " " + (!ISNULL(MiddleName) ? SUBSTRING(MiddleName,1,1) + " " : "") + TRIM(LastName)
    
  • Bu örnek kullanır Person tablo.ifade Girişleri doğrulama Title sütun.Verdiği bir Title giriş veya boş bir dize.

    (Title == "Sr." || Title == "Ms." || Title == "Sra." || Title == "Mr.") ? Title : ""
    
  • Bu örnek kullanır Product tablo.ifade Dönüştüren ilk karakteri Color büyük sütun ve dönüştürür kalan karakterler için küçük.

    UPPER(SUBSTRING(Color,1,1)) + LOWER(SUBSTRING(Color,2,15))
    
  • Bu örnek kullanır Product tablo.ifade bir ürün satılmış ve döner ay sayısını hesaplar dize "Bilinmeyen" ya da, SellStartDate veya SellEndDate içeren sütun null.

    !(ISNULL(SellStartDate)) && !(ISNULL(SellEndDate)) ? (DT_WSTR,2)DATEDIFF("mm",SellStartDate,SellEndDate) : "Unknown"
    
  • Bu örnek kullanır Product tablo.ifade Üzerinde işaretleme hesaplar StandardCost sütun ve bir duyarlılık sonucu iki yuvarlar.Sonucu yüzde olarak sunulur.

    ROUND(ListPrice / StandardCost,2) * 100
    

Dış Kaynaklar

Teknik makale, SSIS ifade hile yaprak, pragmaticworks.com,