我正在编写一个DB2存储过程,我需要有一个条件来选择表1和表2中的所有值,其中table1.column_a以table2.column_b开头。
select * from table1 T1, table2 T2 where T1.column_a like T2.column_b + '%'
我试过玩上面的SQL,但它似乎是一个无效的SQL。有什么建议?
答案 0 :(得分:4)
您可以使用concat()
函数或||
连接运算符。用于字符串连接的+
由SQL Server和类似数据库使用。
我会将其称为join
:
select *
from table1 T1 join
table2 T2
on T1.column_a like concat(T2.column_b, '%');
答案 1 :(得分:1)
请考虑column_a和column_b具有尾随空白,并且like
操作数存在问题。您始终可以使用left()
并将其与RTRIM()
合并。我对DB2的经验非常有限,但这是我的预感。
select *
from table1 T1
INNER JOIN table2 T2
on LEFT(RTRIM(T1.column_a), LENGTH(RTRIM(T2.column_b))) = T2.column_b