Sql Server 取出多个字段列中的最大值和最小值

现有表table1 , 四个int型 字段 F1,F2,F3,F4;现要查询得到四列中的最大值 , 并只需要返回最大值

方法一:

select case when F12>F34 then F12 else F34 end as MaxNum from
(select case when F1>F2 then F1 else F2 end as F12,
case when F3>F4 then F3 else F4 end as F34 from table1) as t1 order by MaxNum desc

效果如下:

方法二:

SELECT TOP 1 * FROM (
SELECT F1 AS MaxNum,'F1' AS ColumnName FROM TABLE1
UNION
SELECT F2 AS MaxNum,'F2' AS ColumnName FROM TABLE1
UNION
SELECT F3 AS MaxNum,'F3' AS ColumnName FROM TABLE1
UNION
SELECT F4 AS MaxNum,'F4' AS ColumnName FROM TABLE1) AS T
ORDER BY T.MaxNum DESC 

效果如下:

小注:有4列 数据,这里 三个 union 连接的 四个 select 语句,每个查一列,最后四列数据变成一行,然后再查,就好查了。

对于方法二的知识补充:SQL UNION 和 UNION ALL 操作符

时间: 2024-10-24 19:10:35

Sql Server 取出多个字段列中的最大值和最小值的相关文章

Oracle如何取出多个字段列中的最大值和最小值

首先介绍两个函数(下面是两个连接): Oracle Least()函数 Oracle Greatest()函数 例子: 建表语句: create table EMP ( EMPNO NUMBER(4) not null, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) 假如要求EMPNO, MGR,SAL

Oracle 取出多个字段列中的最大值和最小值

首先介绍两个函数(下面是两个连接): Oracle Least()函数 Oracle Greatest()函数 例子: 建表语句: create table EMP ( EMPNO NUMBER(4) not null, ENAME VARCHAR2(10), JOB VARCHAR2(9), MGR NUMBER(4), HIREDATE DATE, SAL NUMBER(7,2), COMM NUMBER(7,2), DEPTNO NUMBER(2) ) 假如要求EMPNO, MGR,SAL

Sql Server中如何取出多个字段列中的最大值和最小值

现有表table1 , 四个int型 字段 F1,F2,F3,F4:现要查询得到四列中的最大值 , 并只需要返回最大值 方法一: select case when F12>F34 then F12 else F34 end as MaxNum from (select case when F1>F2 then F1 else F2 end as F12, case when F3>F4 then F3 else F4 end as F34 from table1) as t1 order

数据-SQL中将多行中的一个字段列中的数值加/号组合在一起

问题描述 SQL中将多行中的一个字段列中的数值加/号组合在一起 一张表中有以下字段,想做如下处理,将统一DJLSH下相同的GNLX的XMBH与XMMC合并成一条数据. 1401090002的DJLSH中,XMBH803膀胱的GNLX是B超,802也是B超,那么就要进行合并. 实现的效果如下: 求组各位大神! 解决方案 oracle的wmsys.wm_concat,oralce11g开始特有的listagg mysql的group_concat函数 sqlserver的xml path 都是处理你

sql server 2008如何根据一个表中数据去查询另一个表的数据?

问题描述 sql server 2008如何根据一个表中数据去查询另一个表的数据? 现在我有三个表,表A有11列,其中有一列用来记录员工的id,一列是记录类型的Id,现在我要查询出表A的所有数据,但同时我要通过员工的id去查询出表B的员工名,通过类型的id,去查询出表C中的类型详情,最后我要得到的数据就是表A中除了员工id和类型id的数据外的9列数据,加上表B的员工名和表C的类型详情,请问这样的SQL语句要如何写? 解决方案 用一个表的数据更新另一个表Sql ServerSQL server中将

Sql Server 性能优化之包含列

原文:Sql Server 性能优化之包含列 Sql Server 性能优化之包含列        导读:数据数优化查询一直是个比较热门的话题,小生在这方面也只能算是个入门生.今 天我们就讲下数据库包含列这个一项的作用及带来的优化效果           引用下MSDN里面的一段解释:        当查询中的所有列都作为键列或非键列包含在索引中时,带有包含性非键列的索引可以显 著提高查询性能. 这样可以实现性能提升,因为查询优化器可以在索引中找到所有列值:不 访问表或聚集索引数据,从而减少磁盘

SQL Server删除表及删除表中数据的方法

本文介绍SQL Server中如何删除表,如何删除表中的数据.在删除表数据时有delete和truncate两种方法,delete和truncate有什么区别呢? SQL Server,我们现在基本上使用的最古老的版本应该是SQL Server 2000吧,应该没有更早的版本了吧?!从SQL Server 2000开始,到SQL Server 2005,2008,2012等,T-SQL的处理能力越来越强.今天我们就来说说如何使用T-SQL脚本来删除表,以及删除表中的数据. 删除表和删除表数据这是

SQL server 2012数据库某字段超过某个值短信提醒?

问题描述 SQL server 2012数据库某字段超过某个值短信提醒? SQL server 2012数据库某字段超过某个值短信提醒? 解决方案 这个问题有人问过了,我详细回答过了,移步http://ask.csdn.net/questions/235536 解决方案二: 给手机发送短信,是要通过运营商提供接口的. 解决方案三: 设置触发器,发现符合某个条件了,调用程序,然后程序再进行短信发送处理 解决方案四: 可以通过创建存储过程,由存储过程发送短信请求,触发器生成url参数,调用存储过程的

SQL Server如何在变长列上存储索引

原文:SQL Server如何在变长列上存储索引 这篇文章我想谈下SQL Server如何在变长列上存储索引.首先我们创建一个包含变长列的表,在上面定义主键,即在上面定义了聚集索引,然后往里面插入80000条记录: 1 -- Create a new table 2 CREATE TABLE Customers 3 ( 4 CustomerName VARCHAR(255) NOT NULL PRIMARY KEY, 5 Filler CHAR(138) NOT NULL 6 ) 7 GO 8