2017-03-01 6 views
0

Selectステートメント以下ザ・私のためにレコードを返さない:どのようにSQLでCaseステートメントを使用するように正しく

選択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 + '%' + '' 

出力:Selectステートメント以下

System = 

私のためにレコードを返します:

選択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 

答えて

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 + '%' + '' 
+0

素晴らしい、ありがとう。時々新鮮な目を取る。再度、感謝します! – Jason

+0

私の喜びは、実際には、フロントに連結された空の文字列を必要としないということです。 –

関連する問題