gpt4 book ai didi

sql - 基于两列获取记录。如果两列具有相同的值,则一条记录,否则 2 条记录

转载 作者:行者123 更新时间:2023-11-29 12:49:27 26 4
gpt4 key购买 nike

我有一个用例,其中我们有一个表可以说 table_a

table_a 有多个列,让我们考虑 3 个 a、b 和 c

表_a

|a|b|c|
|1|1|x|
|2|3|y|

需要输出

  1. 如果a和b有相同的值则需要一条记录。
  2. 如果 a 和 b 的值不同,则需要两条记录。

预期输出:

|a|b|c|
|1|1|x|
|2|3|y|
|2|3|y|

最佳答案

demo:db<>fiddle

SELECT
t.*
FROM
table_a t,
unnest(CASE WHEN a = b THEN ARRAY[1] ELSE ARRAY[1,1] END)

集合返回函数可能会重复记录。在这种情况下,unnest() 函数扩展了作为参数创建的数组。如果 a 等于 b 则创建一个只有一个元素的数组。在这种情况下,unnest() 函数仅展开一条记录。否则会创建一个双元素数组,这会导致包含两个记录的扩展。

关于sql - 基于两列获取记录。如果两列具有相同的值,则一条记录,否则 2 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57767794/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com