我有2个表格,如下所示
表1
Name Status Code
----------------------------------------
pop AB CO-Completed
pop AG FF-Open
表2
ID Code
--------------
1 CO
2 FF
我正在尝试编写一个查询,该查询从表1中返回状态,并从表中返回id给出表2中的代码
我试图这样做,但我看错了......
select * from Table1 a
join Table2 b
on a.SUBSTRING('Code',1,2)=b.Code
where b.ID = '1'
我希望返回设置为
ID Code Status
-------------------------
1 CO AB
答案 0 :(得分:1)
CODE
周围有单引号,所以你有一个字符串常量。删除那些,代码将工作。这种方法通常用left()
函数编写:
select *
from Table1 a join
Table2 b
on left(a.code, 2) = b.Code
where b.ID = 1;
仅对字符串和日期常量使用单引号。虽然它们可以在其他环境中使用(取决于数据库),但它们会导致您刚刚发现的问题。