扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
经过测试,可以直接使用
固阳ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18982081108(备注:SSL证书合作)期待与您的合作!
第一、在Oracle9i下的脚本:
SELECT to_char(flag)||'=1*'||to_char(flag) "1" ,
CASE WHEN flag1 THEN to_char(flag*2)||'=2*'||to_char(flag) ELSE '' END "2",
CASE WHEN flag2 THEN to_char(flag*3)||'=3*'||to_char(flag) ELSE '' END "3",
CASE WHEN flag3 THEN to_char(flag*4)||'=4*'||to_char(flag) ELSE '' END "4",
CASE WHEN flag4 THEN to_char(flag*5)||'=5*'||to_char(flag) ELSE '' END "5",
CASE WHEN flag5 THEN to_char(flag*6)||'=6*'||to_char(flag) ELSE '' END "6",
CASE WHEN flag6 THEN to_char(flag*7)||'=7*'||to_char(flag) ELSE '' END "7",
CASE WHEN flag7 THEN to_char(flag*8)||'=8*'||to_char(flag) ELSE '' END "8",
CASE WHEN flag8 THEN to_char(flag*9)||'=9*'||to_char(flag) ELSE '' END "9"
FROM (
SELECT 1 flag FROM dual
UNION ALL
SELECT 2 FROM dual
UNION ALL
SELECT 3 FROM dual
UNION ALL
SELECT 4 FROM dual
UNION ALL
SELECT 5 FROM dual
UNION ALL
SELECT 6 FROM dual
UNION ALL
SELECT 7 FROM dual
UNION ALL
SELECT 8 FROM dual
UNION ALL
SELECT 9 FROM dual) a
二、在sqlserver下脚本:
select convert(varchar(10),flag)+'=1*'+convert(varchar(10),flag) [1],
case when flag1 then convert(varchar(10),flag*2)+'=2*'+convert(varchar(10),flag) else '' end [2],
case when flag2 then convert(varchar(10),flag*3)+'=3*'+convert(varchar(10),flag) else '' end [3],
case when flag3 then convert(varchar(10),flag*4)+'=4*'+convert(varchar(10),flag) else '' end [4],
case when flag4 then convert(varchar(10),flag*5)+'=5*'+convert(varchar(10),flag) else '' end [5],
case when flag5 then convert(varchar(10),flag*6)+'=6*'+convert(varchar(10),flag) else '' end [6],
case when flag6 then convert(varchar(10),flag*7)+'=7*'+convert(varchar(10),flag) else '' end [7],
case when flag7 then convert(varchar(10),flag*8)+'=8*'+convert(varchar(10),flag) else '' end [8],
case when flag8 then convert(varchar(10),flag*9)+'=9*'+convert(varchar(10),flag) else '' end [9]
from
(select 1 flag
union all
select 2
union all
select 3
union all
select 4
union all
select 5
union all
select 6
union all
select 7
union all
select 8
union all
select 9) a
根据题意,你应该想让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;
可以
方法一
sqlserver
select a/b,a+b,a*b
数字类型的计算,可以直接这样写的
方法二
select a.a/b.b,a.a+b.b
from a left join b on a.c=b.c
Transact-SQL介绍
Transact-SQL语言是用在微软的SQL Server 的关系型数据库管理系统中编程语言。
主要有六大类:
算术运算符、赋值运算符、位运算符、比较运算符、逻辑运算符和字符串联运算符。
算术运算符包括(+)、减(-)、乘(*)、除(/)和取模(%)
赋值运算符"="
位运算符 " ^ |"
比较运算符 =、、、=、=、、!=、!、!
逻辑运算符 AND、OR、NOT
字符串联运算符 +
update B set TotalPrice=Price*Number from B join A on A.BookID=B.BookID
或
update B set TotalPrice=Price*Number from B , A where A.BookID=B.BookID
不管是sql语句里还是存储过程里,没有什么特别的函数来作乘法去处,直接用*是可以的,可能还是你的语法哪里没写对
解决方案:
比如说表t,有三个int型字段xintyintzint要求实现z=x*y那么,如果是SQLSERVER的话,可以写一个Job定时扫描表t,把x*y的结果赋值给zJob要做的事情就是:updatetsetz=x*ywherexisnotnullandyisnotnull或者,在表t上建一个触发器,当满足x、y均有值的时候,把x*y的结果更新给zaccess不清楚怎么创建Job或者触发器你可以写一个小程序,定时执行,用这个小程序去刷表t,更新z的值!
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流