请问一个sel server 语句
请教一个sel server 语句语句:SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0))FROM
请教一个sel server 语句 语句:
SELECT ProductName,UnitPrice*(UnitsInStock+ISNULL(UnitsOnOrder,0)) FROM Products问题:
1.UnitPrice* 是什么意思?
2. UnitsInStock+ISNULL()是什么意思? 为甚么要用一个‘+'号呢?
3. 连起来时什么意思?
谢谢!
[解决办法] #1.UnitPrice是一个字段,*号,是乘法中的乘数
#2.UnitsInStock是一个字段,ISNULL函数的作用是:当UnitsOnOrder字段的值是NULL时,就把NULL变成0
#3.总体意思:从Products表中获取所有行的数据,每行有两列,一列是 ProductName,另一列,是经过计算得来的,计算方法为:UnitPrice 乘以 (UnitsInStock + UnitsOnOrder),应该是指:单价乘以(现在有的库存+已下单量)
[解决办法] 书中说:In the example above, if any of the "UnitsOnOrder" values are NULL, the result is NULL.
null加任何值,结果都是null。
这是规定。
就像你应该一年长一岁,而你非要想一年长2岁。那你就违背了游戏规则,懂了么?
[解决办法] 1.UnitPrice* 是什么意思?
unitprice是你的列,然后用这列的数据乘以括号里面得到的数据
2. UnitsInStock+ISNULL()是什么意思? 为甚么要用一个‘+'号呢?
因为它原本应该是应该字符串,而+就是把字符串连起来显示而已,就好像select 'aa'+'bb' 会出现'aabb'
3. 连起来时什么意思? 就是获得一个值,但是这个值是字符串,估计你那个要用CONVERT/CAST来转换数据类型
[解决办法] 引用: Quote: 引用: #1.UnitPrice是一个字段,*号,是乘法中的乘数 #2.UnitsInStock是一个字段,ISNULL函数的作用是:当UnitsOnOrder字段的值是NULL时,就把NULL变成0 #3.总体意思:从Products表中获取所有行的数据,每行有两列,一列是 ProductName,另一列,是经过计算得来的,计算方法为:UnitPrice 乘以 (UnitsInStock + UnitsOnOrder),应该是指:单价乘以(现在有的库存+已下单量) 非常感谢! 请再帮忙给看一下这个: SELECT ProductName,UnitPrice*(UnitsInStock+UnitsOnOrder) FROM Products 书中说:In the example above, if any of the "UnitsOnOrder" values are NULL, the result is NULL. 提问:为什么UnitsOnOrder是null,最后的结果就是null? 最后的结果应该是UnitPrice*(UnitsInStock+UnitsOnOrder, 这个乘法式中间的括号里不是还有plus sign '+'么?请记住一点:任何值(包括NULL)与NULL的运算,结果还是NULL.
当然,可以开启SQL SERVER的环境选项,把NULL当成空字符串来处理。