‘壹’ 如何用sql语句得到两个字段相乘的结果
假设有表
Table
如下,字段
ID、Price、Amount
想要得到
表中第一行单价
6.00乘于数量
2
的结果金额语句,可以如下:
SELECT (Price * Amount) AS '金额' FROM Table WHERE ID = '1'
‘贰’ oracle的sql的乘法运算方式
以下是运算方式
‘叁’ SQL 中连乘的函数是什么
power(x,y):这是一个函,求x的y次方,例如要求2的5次方,那么就是power(2,5)
‘肆’ sql 乘法
这个应该简单;
select (1.A*2.B)as 两列的乘积 from 1,2
即可实现该功能!
‘伍’ 用sql语句算乘法
select a*b as乘积from tablename
SELECT distinct a.购房人,a.房间号,(a.总房价 -
(SELECT SUM( b.已收款额 )
FROM table1 a, table2 b
WHERE a.房间号 = b.房间号
))
FROM table1 a,table2 b where
(5)sql中的乘法函数扩展阅读:
SELECT
a.购房人
a.房间号
a.总房价
FROM
table1 AS a
‘陆’ 有关sqlserver中的乘法运算
不管是sql语句里还是存储过程里,没有什么特别的函数来作乘法去处,直接用*是可以的,可能还是你的语法哪里没写对
‘柒’ 如何用sql乘法求乘积
根据题意,你应该想让1表中的A列和2表中的B列的对应行相乘,相乘不是问题,所以你的问题主要是在“对应行”上,如果你的两张表都有表示行号的字段,那就很好解决:
select a.A*b.B as 乘积 from table1 as a,table2 as b where a.ID=b.ID;
如果没有行号,就必须使用函数或者子查询来解决行号的问题,但是你没有告诉我你用的是哪种数据库,SQL SERVER 2005以上有ROW_NUMBER()函数可以解决,ORACLE有ROWNUM字段可以解决,不同的数据库解决行号的办法不同。这样吧,我给你个比较通用的子查询方法,不用这些特殊的函数:
select a.A*b.B as 乘积 from (select identity(int,1,1) as rownum,* from table1) as a, (select identity(int,1,1) as rownum,* from table2) as b where a.rownum=b.rownum
额~~~
晚上看了下我的回答,有点草率了,identity(int,1,1)估计不能这么用(现在过年,没 数据环境测试),下面这个代码保险点:
alter table table1 add column ididentity(int,1,1)
alter table table2 add column id identity(int,1,1)
select a.A*b.B as 乘积 from table1 as a,table2 as b where a.id=b.id;
‘捌’ sql语句有没有求乘法的函数
当然有啊
看你什么数据库了
oracle里叫instr,sqlserver里叫charindex
不过返回的不是真假,而是0或其他数字,如果是0,表示不包含,如果是大于0的,则表示包含
instr和charindex的用法你查查网络吧,主要就是某一个字符串是否包含另一个字符串,如果包含的话,返回的是这个字符串的起始位置
‘玖’ 编写计算n!(n=20)的SQL语句,并显示计算结果
语句为:
withtemp1(col1)as
(select1col1
unionall
selectcol1+1col1
from
temp1
wherecol1+1<=20
)
selectexp(sum(log(col1)))
fromtemp1;
(9)sql中的乘法函数扩展阅读:
注意事项
sql中没有乘法函数,所以一般用:
logx+logy=logx*y
实现方式,先对记录取对数log(),然后sum聚合,最后exp,结果就是记录相乘的结果。
SUM函数的语法是:
SELECT SUM(expression )
FROM tables
WHERE predicates;
表达式可以是一个数值字段或公式。
例如,可能想知道合并全体员工的薪金总额美元以上,其薪酬是25,000/年
SELECT SUM(salary) as "Total Salary"
FROM employees
WHERE salary > 25000;