2017-08-04 29 views
-4

大家嗨,顺序的表两列

 I have a table which contains two type of Establishments: 

如果SIRET IS NULL - > IT是一个ENTREPRISE

中频SIRET IS NOT NULL - >它是一个etablishement

在我的表中,我总是有这个问题:如果SIRET是NULL,那么表示SIREN不是NULL。

我想是显示在同一列的SIRET和警报器,并通过公司的名称和(SIRET IF NOT NULL)或(如果不为null SIREN)订购表

这是我的查询:

  select CUSTOMER.CUSTOMER_ID, CUSTOMER.CUSTOMER_RCE_ID, 
      CUSTOMER.COMM_REGNUM_CUST,CUSTOMER.GROUP_CODE, 
      CUSTOMER.CUSTOMER_CORPORATE_NAME, 
      Replace(CUSTOMER.ADDRESS_COMPANY, '|', ', ') as ADDRESS_COMPANY, 
      CUSTOMER.COUNTRY_CODE, CUSTOMER.POST_CODE, CUSTOMER.CITY, 
      CUSTOMER.CUSTOMER_ATTRIBUTE1,CUSTOMER.CUSTOMER_ATTRIBUTE2, 
      CUSTOMER.CUSTOMER_ATTRIBUTE3, CUSTOMER.CUSTOMER_ATTRIBUTE4, CUSTOMER.CUSTOMER_ATTRIBUTE5, CUSTOMER.CREATED_DATE, 
      CUSTOMER.CREATED_BY,CUSTOMER.UPDATED_DATE, CUSTOMER.UPDATED_BY, CUSTOMER.TENANT_ID, 
      CUSTOMER.CUSTOMER_ACCOUNT, CUSTOMER.VAT_INTRA, CUSTOMER.VAT_SETTLEMENT,CUSTOMER.IS_HEADQUARTERS, 
      CUSTOMER.CUSTOMER_SAP_ID, CUSTOMER.ADDRESSGUID, CUSTOMER.SIREN_CORP as SIREN, CUSTOMER.COMMERCIAL_SEGMENT, CUSTOMER.CODE_NAF, 
      CUSTOMER.JUR_STATUS_COMP, CUSTOMER.SHARE_CAP_AMT,CUSTOMER.IS_ACTIVE_RCE, CUSTOMER.REGISTRATION_PLACE,STATUS.STATUS_NAME , 
      CUSTOMER.RCE_ETAB_ID, REPLACE (CUSTOMER.COMM_REGNUM_CUST,' ','') AS SIRET from CUSTOMER 


      join CUSTOMER_STATUS on CUSTOMER_STATUS.CUSTOMER_STATUS_ID = ( 
      select * from (select CUSTOMER_STATUS_ID from CUSTOMER_STATUS 
      where CUSTOMER.CUSTOMER_ID = CUSTOMER_STATUS.CUSTOMER_ID order by CUSTOMER_STATUS.UPDATED_DATE desc) CUSTOMER_STATUS where rownum = 1) 


      join STATUS on CUSTOMER_STATUS.STATUS_ID = STATUS.STATUS_ID 

我怎样才能通过CUSTOMER.CUSTOMER_CORPORATE_NAME(公司或丁祖泉NAME)和另一列顺序(SIRET OR SIRET基于假设如果一个NULL另一种是不),并把SIRET和警报器在同一列结果

提前告诉你。

+5

你使用MySQL或Oracle?不要标记不涉及的产品。 – jarlh

+1

如果你尝试了一个更简单的示例代码,那么你会得到很好的服务,只是你需要询问的部分。 –

回答

0

的部分解决方案可能是

SELECT 
     . 
     . 
     . 
     customer.customer_corporate_name, 
     isnull(customer.siren_corp 
       ,Replace(customer.comm_regnum_cust, ' ', '')) AS SiretSiren 
     . 
     . 
     . 
FROM customer 
     JOIN customer_status 
     . 
     . 
     . 
     ON customer_status.status_id = status.status_id 
ORDER by customer.customer_corporate_name,SiretSiren