如何匹配另一个表上的子字符串?
表1:
Reference | Value ----------+------- 1 | 02.02.2011 07:07:00 498-123456-741 5 | 123-789654-100 5 | 123-789654-100
表2:
Reference | Code ----------+------- 5 | 123-789654-700 1 | 498-123456-100
我想计算表2中表1的值
select count(value) as count
from table 1 join table 2 on substring(value,0,12)=substring(code,0,12)
where reference='5'
如果表2中存在该值,则计数为2.
select count(value) as count
from table 1 join table 2 on substring(value,20,12)=substring(code,0,12)
where reference='1'
因此第一个查询在第二个查询正常工作时,如02.02.2011 07:07:00 498-123456-741
它没有将它与表进行比较,即使该值存在,在表2中它始终是一个子字符串(0,12)。
答案 0 :(得分:3)
语法如下:SUBSTRING ( expression ,start , length )
例如:
SELECT x = SUBSTRING('abcdef', 2, 3);
以下是结果集:
x
----------
bcd
你应该这样做:
select count(*) as count from
table 1 join table 2
on substring(value,20,12)=substring(code,0,12)
答案 1 :(得分:1)
这样做
SELECT SUBSTRING('w3resource', startingIndex, lengthForRequiredString);
示例强>
SELECT SUBSTRING(column_name, 4, 3);