sql中怎么比较两个列中的最小值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql中怎么比较两个列中的最小值相关的知识,希望对你有一定的参考价值。

-- 将两个字段叠加起来再比较
-- 获取最小值
select min(fld) as MinVal
from
(
    select fld1 as fld from tbTest
    union all
    select fld2 as fld from tbTest
) a

参考技术A 先分别把两列的最小值找出来,在互相比

Oracle SQL:比较 2 列中的所有值并交换它们

【中文标题】Oracle SQL:比较 2 列中的所有值并交换它们【英文标题】:Oracle SQL: Compare all values from 2 columns and exchange them 【发布时间】:2011-07-15 14:50:12 【问题描述】:

我有一个 Oracle 数据库,其中有一个名为 myC 的表。在这张表中,我有几行,其中两个名为myCheight, myCwidth

我需要读取这些值并像在IF myCheight > myCwidth DO switch the values. 中一样比较它们

我试图从一行中读取值,但没有让它工作。我使用 Oracles Oracle SQL Developer。

这是我目前想出的:

set serveroutput on;
DECLARE 
  cursor h is select * from MyC;
  type htype is table of h%rowtype index by number;

  stage_tab htype;
  master_tab htype;
BEGIN 
  open h;
  loop  
      fetch h bulk collect into stage_tab limit 500;

      for i in 1 .. stage_tab.count loop
          master_tab(stage_tab(i).id) := stage_tabe(i);
      end loop;

      exit when h%notfound;
  end loop;
  close h;

end;

【问题讨论】:

【参考方案1】:

你不能这样做吗?

UPDATE myC
    SET myCheight = myCwidth,
        myCwidth = myCheight
    WHERE myCheight > myCwidth

【讨论】:

+1:同意。 SET myCheight = myCwidth 没有在 myCwidth = myCheight 之前完成,它们“似乎”同时发生。 +1。您还可以添加一个标志:“不要在家里(或 MySQL)尝试这个”

以上是关于sql中怎么比较两个列中的最小值的主要内容,如果未能解决你的问题,请参考以下文章

sql MIN()和MAX()允许您从表中的列中提取最小值和最大值。第1行显示MIN()示例,它选择最小值

SQL:在一列中获取最小值和最大值

Sql 从一个表列中选择一个最小值,并在一个 SQL 语句中将结果插入到另一个表列中

java中如何找出一串时间序列中的最大,最小值

与其他列中的最小值关联的非空值

sql选择某一列的最大值与最小值并在同一列中显示