Gelişmiş Tümleştirme Hizmetleri deyimler

Bu bölümde, birden çok işleç ve işlevleri Gelişmiş ifade örnekleri verilmiştir.Varsa bir ifade kullanılan öncelik kısıtlaması veya koşullu bölme dönüştürme, Boole değerine değerlendirmelidir.Bu kısıtlama, ancak özellik ifadeleri, değişkenler, türetilmiþ sütun dönüştürme veya döngü için konteyner kullanılan deyim için uygulanmaz.

The following examples use the AdventureWorks and the AdventureWorksDWMicrosoft SQL Server databases.Her örnek kullandığı tabloları tanımlar.

Boole deyimleri

  • Bu örneğin kullandığıÜrün tablo.Ay girişinde ifade verenSellStartDate sütun ve Haziran ayı ise, doğru ya da daha sonra verir.

    DATEPART("mm",SellStartDate) > 6
    
  • Bu örneğin kullandığıÜrün tablo.Bölme yuvarlak sonucu ifade verenListPriceStandardCost sütun ve sonucu 1. 5 ' büyük ise TRUE döndürür sütunun.

    ROUND(ListPrice / StandardCost,2) > 1.50
    
  • Bu örneğin kullandığıÜrün tablo.Üç işlemlerinin tümü TRUE olarak değerlendirilir, ifade doğru sonucunu verir.,Boyutu sütun ve BikeSize değişken uyumsuz veri türleri varsa, bir açık olarak gösterilen tonunu ikinci örnek. ifade gerektirir. 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 örneğin kullandığıCurrencyRate tablo.ifade, tablo ve değişkenlerin değerleri karşılaştırır., Doğru verir girişleriFromCurrencyCode veya ToCurrencyCode sütunları değişken değerlerini ve değeri AverageRate'e büyükse, eşit olan değeri EndOfDayRate .

    (FromCurrencyCode == @FromCur || ToCurrencyCode == @ToCur) && AverageRate > EndOfDayRate
    
  • Bu örneğin kullandığıPara birimi tablo., İfade doğru sonucunu verir ilk karakteriAdı sütun olmayan bir ya da A.

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

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

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

Olmayan ifadeleri

Non-Boole deyimleri kullanılan sütun türetilmiþ dönüştürme, özellik ifadeleri ve döngü için kapsayıcı.

  • Bu örneğin kullandığıİlgili kişi tablo.ifade baştaki ve sondaki boşlukları alanından kaldırırAdıMiddleName , Soyadı sütunları. İlk harfini ayıklar,MiddleName sütun null değilse, ikinci adının ilk ve ad ve Soyad değerleri birleştirir ve değerler. arasında uygun bir boşluk ekler

    TRIM(FirstName) + " " + (!ISNULL(MiddleName) ? SUBSTRING(MiddleName,1,1) + " " : "") + TRIM(LastName)
    
  • Bu örneğin kullandığıİlgili kişi tablo.ifade Girişleri doğrulamaSelamlama sütun.Döndürdüğü birSelamlama ya da bir boş dize. girdi

    (Salutation == "Sr." || Salutation == "Ms." || Salutation == "Sra." || Salutation == "Mr.") ? Salutation : ""
    
  • Bu örneğin kullandığıÜrün tablo.Deyimin ilk karakteri dönüştürürRenk sütun büyük harf olarak ve diğer karakterler küçük harf. dönüştürür

    UPPER(SUBSTRING(Color,1,1)) + LOWER(SUBSTRING(Color,2,15))
    
  • Bu örneğin kullandığıÜrün tablo.ifade Ürün satılmış ve bu da, "Unknown" dizesini döndürür ay sayısını hesaplarSellStartDate NULL. veya SellEndDate sütun içerir

    !(ISNULL(SellStartDate)) && !(ISNULL(SellEndDate)) ? (DT_WSTR,2)DATEDIFF("mm",SellStartDate,SellEndDate) : "Unknown"
    
  • Bu örneğin kullandığıÜrün tablo., İşaretlemeyi ifade hesaplarStandardCost sütun ve bir duyarlılık sonucu iki yuvarlar.Sonucu yüzde olarak görüntülenir.

    ROUND(ListPrice / StandardCost,2) * 100