SQLite的。如何从SQL Case函数中只在一列中合并两个案例?

时间:2016-10-21 01:34:56

标签: sql sqlite

我正在使用SQLite。

我有这个问题:

    SELECT Customer.contract_number,
       Customer.name,
       Customer.last,
       Customer.phone,
       Contrato.desc,

       CASE Contract.sinc WHEN 1 THEN 'Sincro' ELSE 'NO sincro' END Status1,
       CASE Customer.rev WHEN 1 THEN 'Rev' ELSE 'No rev' END Status2

  FROM Customer,
       Contract
 WHERE Customer.contract_number = Contract.contract_number
UNION ALL
SELECT HandCo.contract_number,
       HandCo.name,
       HandCo.last,
       HandCo.phone,
       HandCo.des,

       CASE HandCon.tradit WHEN 1 THEN 'Tradit' ELSE NULL END Status3

  FROM HandContract;

我想将Status1的结果和Status2的结果合并在一列中。 我怎么做的?谢谢。

我正在使用UNION进行查询,这就是我想合并Case Funtion的原因。

感谢您的回复。

2 个答案:

答案 0 :(得分:0)

您可以使用||连接字符串在sqllite。

SELECT Customer.contract_number, Customer.name, Customer.last, Customer.phone, Contract.desc,

   CASE Contract.sinc WHEN 1 THEN 'Sincro' ELSE 'No sincro' END
   ||
   CASE Customer.rev WHEN 1 THEN 'Rev' ELSE 'No Rev' END Status
FROM 
    Customer, Contract;

类似主题:How to concatenate strings with padding in sqlite

答案 1 :(得分:0)

也许是字符串连接?

SELECT cu.contract_number, cu.name, cu.last, cu.phone, co.desc,
       ((CASE co.sinc WHEN 1 THEN 'Sincro' ELSE 'No sincro' END) || '-' ||
        (CASE cu.rev WHEN 1 THEN 'Rev' ELSE 'No Rev' END)
       ) as Status
FROM Customer cu JOIN
     Contract co
     ON co.?? = cu.??;

注意:我从,子句中删除了FROM。我真的怀疑这是这个查询的意图。您需要在JOIN子句中放置正确的ON条件,并使用适当的列名替换??