ISNULL是不是后面只能跟两个值呢?
如果有3种以上的情况用SQL 语句怎么写,如:表 编号 数量1 数量2
1 5
2 6
3 求数量与金额(3元)的乘积:如果数量1有就与数量1乘,如果没有就与数量2乘,如果数量1和数量2都没有就乘0,用SQL怎么写呢?
这样可以吗 3*ISNULL(数量1,数量2,0)
如果有3种以上的情况用SQL 语句怎么写,如:表 编号 数量1 数量2
1 5
2 6
3 求数量与金额(3元)的乘积:如果数量1有就与数量1乘,如果没有就与数量2乘,如果数量1和数量2都没有就乘0,用SQL怎么写呢?
这样可以吗 3*ISNULL(数量1,数量2,0)
会返回第一个非空的值,参数是任意多个。
返回其参数中第一个非空表达式。语法
COALESCE ( expression [ ,...n ] ) 参数
expression任何类型的表达式。n表示可以指定多个表达式的占位符。所有表达式必须是相同类型,或者可以隐性转换为相同的类型。
嗯,是这样的。
COALESCE ( expression [ ,...n ] ) 等价于 CASE WHEN (expression1 IS NOT NULL) THEN expression1 ... WHEN (expressionN IS NOT NULL) THEN expressionN ELSE NULL END
我觉得也应该是用case的方式
CASE
WHEN 数量1 is not null THEN 1*3
WHEN 数量2 is not null THEN 2*3
else 0*3
END AS m
FROM tb