Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL Server中比较两个相同的值_Sql Server_Database - Fatal编程技术网

Sql server 如何在SQL Server中比较两个相同的值

Sql server 如何在SQL Server中比较两个相同的值,sql-server,database,Sql Server,Database,这里的@Var1和@Var2完全相同,但@Var3与@Var1或@Var2相同。那么,如果两个值看起来相同,我们如何比较呢 在这里,我的目标是得到所有的值,无论是完全相同的还是几乎相同的 @Var1=CHA000375972 @Var2=CHA000375972 @Var2=000375972 如果您只想比较最右边的9个字符,可以使用: select distinct a.SupplierInvoiceNumber from #tmpSup1 a join #tmpSup2 b on a.

这里的
@Var1
@Var2
完全相同,但
@Var3
@Var1
@Var2
相同。那么,如果两个值看起来相同,我们如何比较呢

在这里,我的目标是得到所有的值,无论是完全相同的还是几乎相同的

@Var1=CHA000375972
@Var2=CHA000375972
@Var2=000375972

如果您只想比较最右边的9个字符,可以使用:

select distinct a.SupplierInvoiceNumber
from #tmpSup1 a  
join #tmpSup2 b on a.SupplierInvoiceNumber = b.SupplierInvoiceNumber 
如果只有一个表的SupplierInvoiceNumber长度超过9个字符,则right()函数中需要包含该编号,连接条件可以简化为:

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 a.SupplierInvoiceNumber=right(b.SupplierInvoiceNumber)

@var2与“%+@var3+%”相似,反之亦然。您的最后一行应该是
@var3
而不是
@var2
?如果是,则与前面的值不相同。你对“完全相同”和“看起来相同”有什么区别?
    join #tmpSup2 b on a.SupplierInvoiceNumber=right(b.SupplierInvoiceNumber)
select distinct a.SupplierInvoiceNumber
  from #tmpSup1 a 
    join #tmpSup2 b on a.SupplierInvoiceNumber like '%'+b.SupplierInvoiceNumber