当前位置: 首页 > 知识库问答 >
问题:

选择表中所有列的最简单方法,对一列具有不同的条件

曹自怡
2023-03-14

我有一个超过100列的表,我想编写一个选择查询,根据一列的不同条件从表中选择所有的列。

For ex->

Col_A Col_B Col_C Col_D
  1     120  12     12
  1     12   43     23
  1      3    1      1
  2     12    1     132
  2     13    3     333

在上面的示例中,我想选择Col_A唯一的所有列(在源表中存在多个值的情况下首次出现)

Output

Col_A Col_B Col_C Col_D
  1     120  12     12
  2     12    1     132

共有1个答案

姚俊贤
2023-03-14

如果支持语法上的不同,可以执行以下操作:

SELECT DISTINCT ON (Col_A) * FROM table_name

或者,如果支持窗口功能,类似下面的内容将会实现这一点。tmp子查询通过Col_A值分别分配增量数字,主查询只选取第一条记录。

with tmp as (
  SELECT *, row_number() OVER (PARTITION BY Col_A) AS num
  FROM table_name
)
SELECT * FROM tmp WHERE num=1

如果您指定正在使用的 sql 方言,可以找到更多想法。

 类似资料:
  • 问题内容: 在SQL中,将行复制到另一个(备份)表中。如果备份表具有不同的结构(或不同的列名称),这可能吗?如果没有,实现此目标的最佳方法是什么? 这是我想做的:具有columns 。我想将一些行从该表复制到另一个具有column的表。内容进入,对等 问题答案: 该 列名 不事可言,只要该 数据类型 相匹配。 如果列的数据类型不匹配,请尝试相应地强制转换值。 只需尝试 使用小的虚拟表。确保明确列出

  • 问题内容: 我有这张表: 有没有一种方法可以通过密钥分组来获得此结果? 或此结果: 如果我使用此查询: 我知道这是不正确的,因为我应该按需要显示的所有列进行分组。 有解决这个问题的方法吗? 问题答案: 适用于所有数据库引擎的查询将是 min(id)影响您获得结果的功能在哪里?如果您使用max(id),则得到另一个。

  • 问题内容: 如何选择表中除一列以外的所有列? 我有将近259列,我不能在声明中提及258列。 还有其他方法吗? 问题答案: 您可以使用这种方法从除以下以外的所有列中获取数据:- 将所有数据插入临时表 然后从临时表中删除不需要的列 从临时表中获取数据(这将不包含已删除列的数据) 删除临时表 像这样的东西:

  • 问题内容: 我确实进行了搜索,发现该SQL在最近的日期之前选择了行,该 行 与我想要的日期非常接近,但我似乎无法使它起作用。 我收到一个错误,因为选择列表中的列“ ID”不包含在聚合函数或GROUP BY子句中,所以它无效。 我想要每个不同名称的最新日期 这是我想要的一个例子 理想的结果 我正在使用Microsoft SQL Server 2008 感谢您的帮助或指向正确的方向 问题答案: Sel

  • 问题内容: 如何使用JOIN从一个表中选择所有列,从另一个表中仅选择一些列?在MySQL中。 问题答案: 只需使用表名: 这将选择所有列和列和从。

  • 问题内容: import random pos = [“A”, “B”, “C”] x = random.choice[“A”, “B”, “C”] 这段代码给我的概率是“ A”,“ B”或“ C”。当您想要“ A”的概率为30%,“ B”的概率为40%,“ C”的概率为30%时,有没有一种很好的表达方式? 问题答案: 权重定义概率分布函数(pdf)。任何此类pdf的随机数均可通过将其关联的逆累积