2016-12-08 2 views
1
@Var1=CHA000375972 
@Var2=CHA000375972 
@Var2=000375972 

Здесь @Var1 и @Var2 полностью совпадают, но @Var3 идентичен @Var1 или @Var2. Итак, как мы можем сравнить, если два значения выглядят одинаково?Как сравнить два одинаковых значения в SQL Server

Вот моя цель состоит в том, чтобы получить все значения ли его полная же или почти такой же

select distinct a.SupplierInvoiceNumber 
from #tmpSup1 a 
join #tmpSup2 b on a.SupplierInvoiceNumber = b.SupplierInvoiceNumber 
+2

'@ var2 как '%' + @ var3 + ' % '' и наоборот. –

+2

Ваша последняя строка должна быть '@ Var3', а не' @ Var2'? Если это так, то не будет выглядеть так же, как и предыдущие. какое различие вы делаете между «полностью одинаковым» и «выглядит идентичным»? –

ответ

1

Если вы просто хотите, чтобы сравнить право наиболее 9 символов, вы можете использовать это:

right(@Var1,9) = right(@Var3,9) 

select distinct a.SupplierInvoiceNumber 
    from #tmpSup1 a 
    join #tmpSup2 b on right(a.SupplierInvoiceNumber,9)=right(b.SupplierInvoiceNumber,9) 

Если только одна таблица имеет номера поставщиков, которые должны иметь длину более 9 символов, то должна быть включена функция права(), условие объединения может быть упрощено до:

join #tmpSup2 b on right(a.SupplierInvoiceNumber,9)=b.SupplierInvoiceNumber 

или

join #tmpSup2 b on a.SupplierInvoiceNumber=right(b.SupplierInvoiceNumber) 

Если одна переменная всегда короче другого, но не всегда 9 символов, вы можете использовать это:

select distinct a.SupplierInvoiceNumber 
    from #tmpSup1 a 
    join #tmpSup2 b on a.SupplierInvoiceNumber like '%'+b.SupplierInvoiceNumber 
Смежные вопросы