sqlserver 里 有没有类似if(2>1,2,1)的用法
参考下例:(t_2即为
sqlserverif函数(sqlserver中if)
sqlserverif函数(sqlserver中if)
临时表
)ii=#
select
from
t1;
id
|col2
|col3
----+------+------
1|
abc
|2
(1
row)
ii=#
create
temporary
table
t_2
as
select
from
t1;
SELECT
ii=#
select
from
t_2;
id
|col2
|col3
----+------+------
1|
abc
|2
(1
row)
讲解SQL 数据库中函数的使用方法
本文主要主要讲解了SQL 数据库中函数的两种用法 具体内容请参考下文
◆ 由于update里不能用存储过程 并且由于根据更新表的某些字段还要进行计算 所以很多人采用的是游标的方法 在这里我们可以用函数的方法实现
函数部分
CREATE FUNCTION [DBO] [FUN_GETTIME] (@TASKPHASEID INT)RETURNS FLOAT ASBEGINDECLARE @TASKID INT @HOUR FLOAT @PERCENT FLOAT @RETURN FLOATIF @TASKPHASEID IS NULLBEGINRETURN( )ENDSELECT @TASKID=TASKID @PERCENT=ISNULL(WORKPERCENT )/ FROM TABLETASKPHASEWHERE ID=@TASKPHASEIDSELECT @HOUR=ISNULL(TASKTIME ) FROM TABLETASKWHERE ID=@TASKIDSET @RETURN=@HOUR@PERCENTRETURN (@RETURN)END调用函数的存储过程部分 CREATE PROCEDURE [DBO] [PROC_CALCCA]@ROID INTASBEGINDECLARE @CA FLOATUPDATE TABLEFMECASETCvalue_M= ISNULL(MODERATE )ISNULL(FMERATE )ISNULL(B BASFAILURERATE )[DBO] [FUN_GETTIME](C ID)FROM TABLEFMECA TABLERELATION B TABLETASKPHASE CWHERE ROID=@ROID AND TASKPHASEID=C ID AND B ID=@ROIDSELECT @CA=SUM(ISNULL(Cvalue_M )) FROM TABLEFMECA WHERE ROID=@ROIDATE TABLERELATIONSET CRITICALITY=@CAWHERE ID=@ROIDENDGO
◆ 我们要根据某表的某些记录 先计算后求和 因为无法存储中间值 平时我们也用游标的方法进行计算 但SQL 里支持
SUM ( [ ALL DISTINCT ] eXPression )expression
是常量 列或函数 或者是算术 按位与字符串等运算符的任意组合 因此我们可以利用这一功能
函数部分
lishixinzhi/Article/program/SQL/201311/22423
在sqlserver的存储过程中怎样使用if-else if
if @a=1
begin
end
else
begin
if @a >3 只能这样写
begin
end
end
oracle SQL 当中的IF函数是什么
select A,case when A=0 then B when A=1 then C end from table 或者
select A,decode(A,0,B,1,C) from table
case when
关键字而已
在sqlserver的存储过程中怎样使用if-else if
直接用啊
create proc myProc @i int
as
if @i=1
select @i+10
else if @i=2
select @i+20
else
select 0
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。