我有两个 SQL 表,分别称为 t1 和 t2。两者都有列名 str_id。str_id 通常是一个 10 位的字符串,但我有特殊的 str_id,它以“sp”开头,后跟一个普通的 10 位 str_id。我想从 t1 中选择所有的“sp”str_id,删除 sp,然后在 t2 中查找 str_id。我试过这个查询:
Select
str_id,
desired_column
From
t2
Where
str_id in (
Select
substr(str_id, 3)
From
t1
Where
str_id Like 'sp%' and
other_column = 'my_value'
);
从语法上看,这个命令似乎是正确的,但是当我运行它时,我的 SQL 前端就挂了。如果我在没有 SUBSTR 的情况下运行命令,那么它可以正常执行,但它不会返回我想要的结果,因为所有 str_ids 都有 sp 前缀。仅供参考,有效的命令是:
Select
str_id,
desired_column
From
t2
Where
str_id In (
Select
str_id
From
t1
Where
str_id Like 'sp%' and
other_column = 'my_value'
);
我能做些什么来解决上面的查询?