--主表, 需要被更新的表
create table #t1(
c1 nvarchar(100),
c2 nvarchar(100),
c3 int)
go
insert #t1
select 'x1','y1','' union all
select 'x2','y2','' union all
select 'x3','y2','' union all
select 'x4','y3','' --变量表
create table #t2(
d1 nvarchar(100),
d2 nvarchar(200),
d3 int)
go
insert #t2
select 'all','all',3 union all
select 'x2','all',2 union all
select 'x2','<y2',3
有如上数据, 要求, 更新#t1.c3字段为#t2.d3, 条件为#t2中的d1,d2, 如all 代表所有x1-x3, <y2代表y1, 请教个方案? (如有不理解的地方,我再修改) 请各位达达们帮忙啦。。
create table #t1(
c1 nvarchar(100),
c2 nvarchar(100),
c3 int)
go
insert #t1
select 'x1','y1','' union all
select 'x2','y2','' union all
select 'x3','y2','' union all
select 'x4','y3','' --变量表
create table #t2(
d1 nvarchar(100),
d2 nvarchar(200),
d3 int)
go
insert #t2
select 'all','all',3 union all
select 'x2','all',2 union all
select 'x2','<y2',3
有如上数据, 要求, 更新#t1.c3字段为#t2.d3, 条件为#t2中的d1,d2, 如all 代表所有x1-x3, <y2代表y1, 请教个方案? (如有不理解的地方,我再修改) 请各位达达们帮忙啦。。
解决方案 »
- 哪位高手帮我解释下下面的这些语句是什么意思,麻烦详细点,,谢谢
- 问个表锁定问题
- 怎樣縮小TEMPDB.DBF的大小
- 求问输出列为带小数数字的问题?
- 数据库 插不进数据
- 我的机器上原来有sqlserver2000怎么再装sqlserver2005一直报 执行安装向导期间出错,有关详细信息,您可以查看安装日志和/或单击帮助按钮。
- 删除表中记录如何采用多表联合查询吗?
- SQL连接问题
- 在win2000专业版中如何装SQL server,SQL server有没有开发版
- MS SQLSERVER游标中不能带局部变量?
- 如何用零散的时间求出连续的时间
- sql server2005企业评估版安装文件解压后有两个文件夹,一个server,一个tools,究竟安装安装哪个文件夹下的内容
/*
分解公式
将公式按运算分解到表中
*/
declare @str varchar(100)
declare @i int,@str1 varchar(10),@str2 varchar(10)set @str='3+7+12-13+8-9*123' --要分解的字符串
declare @tb table(num varchar(20),operation varchar(2)) --定义保存结果的表--公式分拆
set @i=patindex('%[^0-9]%',@str)
while @i>0
begin
select @str1=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[0-9]%',@str)
,@str2=left(@str,@i-1)
,@str=substring(@str,@i,8000)
,@i=patindex('%[^0-9]%',@str)
insert into @tb values(@str1,@str2)
end
if @str<>'' insert into @tb values(@str,'')--显示分拆结果
select * from @tb
all all 3 <--这一行怎么处理
x2 all 2
x2 <y2 3
像all , all, 3 则,可以理解为:c1 , c2 所有值 都包含在ALL里, 即默认c3为3,
而x2, all, 2 ,而当c1=x2时, c2 所有值 , c3=2
而x2,<y2, 3, 当c1=x2,c2<y2, 也就是y1时, c3 =3请帮忙出个思路吧。把条件放到表中, 是因为 用户以后有权力自己加条件。
all,all , 3 即所有省份,所有人口条件, 数据=3,
海南,all,2 海南, 所有人口条件, 数据=2
山东/河南,<400W,3, 山东/河南,并且人口小于400W,数据=3
有没有带平方/求根/sum这样的公式处理方法?
from #t1 a, #t2 b
where (c1=d1 or d1='all')
and (1=2
or c2=d2
or d2='all'
or (charindex('<',d2)>0 and
c2<right(d2,len(d2)-charindex('<',d2))
)
)
-----------------------c1 c2 c3 d1 d2 d3 (无列名) (无列名)
x1 y1 0 all all 3 0 all
x2 y2 0 all all 3 0 all
x3 y2 0 all all 3 0 all
x4 y3 0 all all 3 0 all
x2 y2 0 x2 all 2 0 all结果不对呀?