【问题标题】:ORDER A TABLE BY TWO COLUMNS按两列排序表格
【发布时间】:2017-08-04 14:05:25
【问题描述】:

大家好,

       I have a table which contains two type of Establishments:

如果 SIRET 为 NULL --> 它是一个企业

如果 SIRET 不为空 --> 这是一个建立

在我的表中,我一直有这样的条件:如果 SIRET 为 NULL,则意味着 SIREN 不是 NULL。

我想要的是在同一列中显示 SIRET 和 SIREN,并按公司名称和(SIRET IF NOT NULL)或(SIREN if Not NULL)对表进行排序

这是我的查询:

          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(COMPANY OR ESTABLISHEMENT NAME) 和另一列(SIRET 或 SIRET 假设如果一个为 NULL,则另一个不是)并将 SIRET 和 SIREN 放在同一列结果中

谢谢你。

【问题讨论】:

  • 您使用的是 MySQL 还是 Oracle?不要标记未涉及的产品。
  • 如果您尝试更简单的示例代码,您会得到很好的服务,只是您需要询问的部分。

标签: mysql sql oracle


【解决方案1】:

部分解决方案可能是

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

【讨论】:

    猜你喜欢
    • 2011-10-29
    • 2010-10-05
    • 2021-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多