如果连接表符合条件,则返回行

时间:2017-09-12 20:58:53

标签: sql ruby-on-rails postgresql

我正在尝试根据是否存在连接的表行来返回行。基本上我想要一个简单的选择,其中一列有1或2个值。连接行的存在将告诉我查询(1)或(0,1)这是我想要做的,但我不认为我可以把案例作为IN的值。我怎样才能重写这个呢?

SELECT * FROM orders 
  FULL OUTER JOIN service_fbas ON service_fbas.channel_id = orders.channel_id 
  WHERE orders.processed_by IN CASE 
                               WHEN EXISTS(SELECT 1 FROM service_fbas WHERE service_fbas.channel_id = orders.channel_id) 
                               THEN (0) 
                               ELSE (1,0) 
                               END;

1 个答案:

答案 0 :(得分:0)

function decimalToText(unicodeArray){
   return String.fromCharCode(...unicodeArray);
}

console.log(decimalToText([104, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]));

将选择service_fbas EXISTS所有的所有订单。你可以用NOT EXISTS做相反的事。

现在,如果您需要显示,我会使用如下所示的内容:

SELECT orders.*
ROM orders
WHERE [not] exists (select 1 from service_fbas ON service_fbas.channel_id = orders.channel_id)

我不得不猜测你想要实现的目标,但我认为上面的例子会给你一些好的想法和工具。

无论如何,请随意详细说明,我可以改进解决方案。

泰德。