基于聚合函数的连接

时间:2014-09-16 15:20:58

标签: sql

我有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

1 个答案:

答案 0 :(得分:1)

CODE周围有单引号,所以你有一个字符串常量。删除那些,代码将工作。这种方法通常用left()函数编写:

select *
from Table1 a join
     Table2 b
     on left(a.code, 2) = b.Code
where b.ID = 1;

仅对字符串和日期常量使用单引号。虽然它们可以在其他环境中使用(取决于数据库),但它们会导致您刚刚发现的问题。