获取子字符串并在Where子句中使用它



如何从扫描字段(640064016402(中获取子字符串并将其存储在变量中,然后在where子句中使用它?我正在尝试获取扫描字段列中具有该子字符串的所有唯一行。

表1

scanfields           amount
/411500640036800      50.00
/411500640036800      50.00
/411500640136800      60.00
/411500640236800       70.00

从表1中选择disitct*,其中scanfields=变量位于此处

结果

scanfields           amount
/411500640036800      50.00
/411500640136800      60.00
/411500640236800       70.00
select * 
from [Table2]
where scanfields IN (SELECT substring(scanfields, 7,4) from [Table 1])

请注意,这往往会很慢。如果您有这样一个字段,其中您事先知道值的部分是不同的元素,那么会做得更好将元素拆分为表中的单独字段,这样您就可以对它们进行索引。否则,您可以设置一个Computed Column,它也可以被索引。

最新更新