SQL条件 - 以动态值开头

时间:2017-12-18 15:32:50

标签: sql db2 sql-like

我正在编写一个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。有什么建议?

2 个答案:

答案 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