替换表中的值,然后将其连接到另一个表

时间:2017-03-08 15:58:16

标签: sql join case tableau

全新的网站,这是我的第一个问题!对不起,我的SQL技能非常有限。我主要使用Tableau但需要在Tableau中创建自定义SQL连接。

我有2个表(C表和P表),需要通过“Orders”字段(在两个表中找到)和“Prefix”字段(仅在C表中找到但希望更改P表中的“契约”字段做加入)。只需要更改两个值。如果合同=“1234”,则将更改为“ABC。并且合同=”5678“它将更改为”XYZ“。

更改这些值后,P表中的合同可以从C表连接到前缀。

抱歉,我无法解释这个问题,但就像我说我在SQL方面的经验非常有限。任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您可以使用子查询来完成。

select * 
    from C
    inner join (
        select *,
                case contract when 1234 then ABC
                              when 5678 then XYZ
                              else contract
                end as changed_contract -- or whatever name you like
            from P
    ) P on P.changed_contract = C.prefix
        and P.orders = C.orders

子查询中的表格将为您提供P中的所有字段,包括一个新字段,该字段将您所做的修改记入帐户。然后,您只需加入该新字段并更改您的select语句以获取所需的字段。

答案 1 :(得分:0)

您可以使用case修改contract某些值。像:

select  prefix + ' ' + case contract
        when '1234' then 'ABC'
        when '5678' then 'XYZ'
        else contract
        end as prefix_plus_contract
,       *
from    c
join    p
on      c.orders = p.orders