相关疑难解决方法(0)

SQL Server相当于Oracle LEAST?

我一直在寻找与Oracle LEAST功能相当的优势.

我希望实现一个用户定义的函数来完成大约10个相当复杂的计算,并从每个计算中获取最小值.

我在Oracle中会做的是:

SELECT LEAST
(
select expression1 from dual,
select expression2 from dual,
select expression3 from dual
) from dual
Run Code Online (Sandbox Code Playgroud)

有关Oracle LEAST的更多信息,请访问http://www.techonthenet.com/oracle/functions/least.php.

如果expression1返回10,表达式2返回5,而表达式3返回30,整个表达式将返回5.

因为这可能是大约10-20次计算,所以CASE WHEN语法很快就会变得难以处理.

虽然如果我们更多地分解它,代码将更具可读性,但我认为在一个数据库查询中执行它会更有效.请告诉我在这一点上我是不正确的!

即,具有20个简单查询的存储过程明显慢于存储过程,其中一个查询在一个查询中引用了大量表.

t-sql sql-server oracle

2
推荐指数
1
解决办法
8843
查看次数

ORDER BY具有相同优先级的不同列

我有一个包含2个日期列的表:

create_datemodify_date.
create_date总是modify_date有时候设定.

现在我想用两个具有相同优先级的查询来命令我的查询.

如果我这样做:

order by create_date desc, modify_date desc
Run Code Online (Sandbox Code Playgroud)

我首先得到排序的所有行create_date然后按,modify_date但我希望按两个行排序的行具有相同的优先级.我需要这个:

create_date  |  modify_date
2011-12-31   |  -
2011-12-01   |  2011-12-30
2011-12-29   |  -
Run Code Online (Sandbox Code Playgroud)

sql sql-server

2
推荐指数
1
解决办法
623
查看次数

SELECT中的Cap字段值

我试图限制特定字段,以便它们不超过特定值.

例如,这样的东西就足够了,我可以指定一个字段不应超过8:

SELECT (
        cap(t.MondayHrs,8) 
        + cap(t.TuesdayHrs,8)
        + cap(t.WednesdayHrs,8)
        + cap(t.ThursdayHrs,8)
        + cap(t.FridayHrs,8)
       ) as TotalHours
Run Code Online (Sandbox Code Playgroud)

如果MondayHrs = 7,则应将其添加到TotalHours为7.如果MondayHrs = 10,则应将其添加到TotalHours为8(我的上限值)

T-SQL内置了什么可以促进这一点?

sql t-sql sql-server

2
推荐指数
2
解决办法
3705
查看次数

如果值小于零,则返回零

如果值小于零而不使用case语句,是否可以返回零?

例如Max(a,0)< - 'Max'不存在.

我希望我的代码尽可能简洁.

t-sql sql-server

0
推荐指数
1
解决办法
2万
查看次数

标签 统计

sql-server ×4

t-sql ×3

sql ×2

oracle ×1