如何正确使用SQL中的Case语句

时间:2017-03-01 16:27:19

标签: sql case

以下Select语句不会为我返回记录:

选择1:

    SELECT 
        Case When rcdr.PolicyNumber like '' + bmpd.PaymentReferenceNumber + '%'  
        Then 'Adc' else 'Exceed' end as System
     FROM RcDetailRecords rcdr
       join Bil_ManualPaymentDetails bmpd
       on rcdr.PolicyNumber like '' + bmpd.PaymentReferenceNumber + '%' + ''

输出:

    System = 

以下Select语句为我返回一条记录:

选择2:

     SELECT 
        Case When rcdr.PolicyNumber like '1234567890%'
        Then 'Adc' else 'Exceed' end as System
     FROM RcDetailRecords rcdr
       join BilManualPaymentDetails bmpd
       on rcdr.PolicyNumber like '1234567890%'

输出:

    System = Adc

我错过了一个勾号''在第一个选择?某处?

BilManualPaymentDetails表:

PaymentReferenceNumber 
123456789020161013025120

RcDetailRecords表:

PolicyNumber
1234567890

1 个答案:

答案 0 :(得分:2)

1234567890123456789020161013025120%不同,123456789020161013025120就像1234567890%

所以看来你已经切换了字段,试试:

  SELECT 
        CASE WHEN bmpd.PaymentReferenceNumber LIKE '' + rcdr.PolicyNumber + '%'  
             THEN 'Adc' 
             ELSE 'Exceed' 
        END as System
     FROM RcDetailRecords rcdr
     JOIN Bil_ManualPaymentDetails bmpd
       ON bmpd.PaymentReferenceNumber like '' + rcdr.PolicyNumber + '%' + ''