sql server 中返回两列中值中比较大的一个

Posted

tags:

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

我在数据库中有一个表,表名abc
字段:id,num1,num2;类型都为int
我用select语句查询,返回num1,和num2中数值打得一个;
select需要查询出很多条记录
比如:我需要查询结果显示两列,一列为:id,另一列为num;其中id就是id字段的值;num的值为num1和num2中大的一个

select id,case num1 as num when num1>num2 then num1 when num1<=num2 then num2 end nun1 from table_name 参考技术A 怎么提了两次啊
在你的另一个帖子中已做了回答
http://zhidao.baidu.com/question/126260443.html
参考技术B MAX

如何将两个表与 SQL Server 中第二个表中引用同一列的两列连接起来

【中文标题】如何将两个表与 SQL Server 中第二个表中引用同一列的两列连接起来【英文标题】:How can i join two tables with two columns that refers the same column in the second table in SQL Server 【发布时间】:2021-06-10 14:40:04 【问题描述】:

我有两个表要加入。

第一个表有两列

    记录所有者的用户 ID。 已分配用户的用户 ID。

第二个表有 userId 和 username 列。第一个表的这两列是指同一个表的同一列。我想在一个视图中查看两个用户名,但我无法同时获得它们。我该怎么做?

编辑

select
    TASKID,
    CREATED_BY,
    CREATED_AT,
    ASSIGNED_USER,
    USERNAME ,
    DEADLINE,
    USERNAME
from 
    TASKS
inner join 
    USERS on ASSIGNED_USER = USERID

我可以通过上面的查询得到ASSIGNED_USER的用户名。我已经尝试了第二个来获取两个用户名,但它没有用

select
    TASKID,
    CREATED_BY,
    CREATED_AT,
    ASSIGNED_USER,
    USERNAME ,
    DEADLINE,
    USERNAME
from 
    TASKS
inner join 
    USERS on ASSIGNED_USER = USERID and CREATED_BY = USERID

它返回一个空结果。

【问题讨论】:

“但我不能同时获得这些” 为什么不呢?你试过什么?为什么它不起作用? 【参考方案1】:

您必须加入用户两次,一次为 CREATED_BY,一次为 ASSIGNED_USER:

select
    TASKID,
    CREATED_BY,
    CREATED_AT,
    ASSIGNED_USER,
    USERNAME ,
    DEADLINE,
    USERNAME
from TASKS
inner join USERS u1 on ASSIGNED_USER = u1.USERID 
inner join USERS u2 on CREATED_BY = u2.USERID

【讨论】:

【参考方案2】:

加入 USERS 两次以解码不同的引用

select TASKID, CREATED_BY, CREATED_AT, ASSIGNED_USER, au.USERNAME assignedUser_Name, DEADLINE,  uc.USERNAME createdByUser_Name
from TASKS t
inner join USERS au
on t.ASSIGNED_USER = au.USERID 
inner join USERS uc
on t.CREATED_BY = uc.USERID

【讨论】:

以上是关于sql server 中返回两列中值中比较大的一个的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server:基于两列返回特殊计数列

Mysql条件判断函数使用-选择两列中较大一列数据

SQL取两列的较小值或者较大值

SQL取两列的较小值或者较大值

过滤 SQL 查询返回的结果

是否有一个 SQL 命令来计算不同列中值的频率?