[英]SQL requirement : get common patterned columns join from two tables
我有以下表格:
表格1:
col:
20kasi
30kasi
40eswar
00eswar
表2:
col:
00kasi
05kasi
06kasi
03eswar
44eswar
我想通過忽略digits將它們的名字加入,以便我可以得到其他列。
select {something from each tables}
from table1, table2
where t1.col1 = t2.col2
它應該顯示:
col {other colums from one of tables after join}
kasi ---- ----- \n
eswar ---- -----
這沒有正確的語法。 但是我要這樣。 有什么建議么??
如果所有字符串都恰好有兩位數字,則可以使用以下命令:
SELECT *
FROM table1 inner join table2
on SUBSTRING(table1.col, 3)=SUBSTRING(table2.col, 3)
如果數字位數可以變化,或者它們位於不同的位置,則由於MySql不支持正則表達式,您可以使用如下所示的內容:
SELECT *
FROM table1 inner join table2
on
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(table1.col,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','') =
Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(Replace(table2.col,'9',''),'8',''),'7',''),'6',''),'5',''),'4',''),'3',''),'2',''),'1',''),'0','')
(看起來不太好,但是應該可以)
您始終將前2個字符用作數字嗎? 如果是的話,那將工作
select {something from each tables}
from table1 t1, table2 t2
where substr(t1.col1,3,length(t1.col1)) = substr(t2.col2,3,length(t2.col2))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.