Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Case-Anweisung in SQL mit Like

Zum einen würde ich Ihr SQL so aktualisieren, dass Sie einen JOIN verwenden auf Ihrem SELECT -Anweisung, anstatt diese in ein WHERE zu platzieren Klausel.

INSERT INTO Foundation.TaxLiability.EmpowerSystemCalendarCode

SELECT SystemTax.SystemTaxID,
       EmpowerCalendarCode.CalendarCodeID
      ,CASE WHEN  EmpowerCalendarCode.CalendarName LIKE '%Monthly%' THEN 3
            WHEN  EmpowerCalendarCode.CalendarName LIKE '%Annual%' THEN 2
            WHEN  EmpowerCalendarCode.CalendarName LIKE '%Quarterly%' THEN 4
       ELSE 0
       END
FROM Foundation.Common.SystemTax SystemTax
INNER JOIN Foundation.TaxLiability.EmpowerCalendarCode EmpowerCalendarCode
    ON SystemTax.EmpowerTaxCode = EmpowerCalendarCode.LongAgencyCode 
    AND SystemTax.EmpowerTaxType = EmpowerCalendarCode.EmpowerTaxType

Zweitens, was passiert, wenn Sie INSERT INTO entfernen ?