2017-03-08 56 views
1

全新的网站,这是我的第一个问题!对不起,我的SQL技能非常有限。我主要使用Tableau,但需要在Tableau中创建自定义SQL联接。替换表中的值,然后将其添加到另一个表

我有2个表(C表和P表),需要通过“订单”字段(在这两个表中找到)和“前缀”字段(只在C表中找到,但希望更改值P表中的“合同”字段进行加入)。这只是需要改变的两个值。如果合同=“1234”,它将改为“ABC”,合同=“5678”将更改为“XYZ”

一旦这些值改变,P表中的合同可以加入前缀由C表

对不起我不能解释这更好,但就像我说我在SQL的经验非常有限任何帮助,将不胜感激

回答

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包括一个新的领域是考虑到一个帐户,您所做的修改字段。然后,您只需加入新的字段并更改您的选择语句以获取所需的字段。

+0

谢谢爱德华这工作完美! – Rosadocc

+0

不客气:) – KindaTechy

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 
相关问题