嘿,伙计们,我在工作中真的很吃力。。。我有两张带有注册号的表,在表1中,这些数字有3、4、5、6或7位数。在表2中,这些数字长9位(与表1中的数字相同,但填充了0(。
Example: table1 | table2
134 |000000134
2364 |000002364
45678 |000045678
因此,我需要进行一个匹配这两个数字的联接查询,以获得拥有这些数字的人的姓氏。
我有这样的东西:
-SELECT prest.lastname,aut.registrationcode, aut.date,
-SUM(CASE WHEN aut.type like '%O%' THEN 1 ELSE 0 END) as
'Online',
-SUM(CASE WHEN aut.type like '%D%' THEN 1 ELSE 0 END) as
'Difered',
-count(*) AS TOTAL
-FROM prest INNER JOIN aut ON
-aut.registrationcode like '%' || prest.code
-WHERE (aut.date BETWEEN '2019-12-01' AND '2019-12-31')
-GROUP BY prest.lastname, aut.date;
希望你能帮我。
假设包含注册号的两列都具有文本数据类型(VARCHAR、CHAR、text…(,则可以使用LPAD()
函数:
...
FROM table1
JOIN table2 ON LPAD(table1.registrationcode, 9, '0') = table2.registrationcode
...