如果没有查找表,如何在查询中插入硬编码的转换

时间:2017-05-31 13:23:43

标签: tsql

我必须从我们的crm中将记录插入到我们的erp中以用于种族血统。代码不在表格中。如何插入和执行

if EthnicOrigin = Hispanic EthnicCategory = H, etc.

AI  =   American Indian or Alaska Native

INSERT INTO Person 
           (CODE, ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME, EthnicCategory, CREATE_DATETIME)
     SELECT
           CODE, ID, FIRST_NAME, MIDDLE_NAME, LAST_NAME, EthnicOrigin, CREATE_DATETIME 
           FROM         Changes


CRM                 ERP 
EthnicOrigin        EthnicCategory  

H   =   Hispanic    
AI  =   American Indian 
A   =   Asian   
B   =   Black or African American   
P   =   Native Hawaiian 
W   =   White   

sql server 2008r

1 个答案:

答案 0 :(得分:0)

您可以在case

中使用select表达式
insert into Person(CODE
                  ,ID
                  ,FIRST_NAME
                  ,MIDDLE_NAME
                  ,LAST_NAME
                  ,CREATE_DATETIME
                  ,EthnicCategory
                  )
select CODE
      ,ID
      ,FIRST_NAME
      ,MIDDLE_NAME
      ,LAST_NAME
      ,CREATE_DATETIME
      ,case EthnicOrigin
           when 'H'  then 'Hispanic'    
           when 'AI' then 'American Indian'
           when 'A'  then 'Asian'
           when 'B'  then 'Black or African American'
           when 'P'  then 'Native Hawaiian'
           when 'W'  then 'White'
         else 'No Ethnicity'
         end as EthnicCategory
from Changes;