首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

初学者关于sql语句提问 多谢

2012-02-17 
菜鸟关于sql语句提问 谢谢啊表如下:SenNumint不是键容许空Avchar不是键容许空比如说:SenNumA1我2天操作:刷

菜鸟关于sql语句提问 谢谢啊
表如下:
SenNum     int   不是键   容许空
A               vchar   不是键   容许空

比如说:
SenNum     A
1               我
2               天

操作:刷新时先看SenNum=2的A下有没有值,若有则插入新的一行,若没有则直接填入值。对于本例则插入一行,结果是:
SenNum     A
1               我
2               天
2               空

请问   Sql语句该咋写呢?谢谢大侠们

[解决办法]
declare @s varchar(10)
select @s=isnull(A, '| ') from table where SenNum=2
if @s <> '| '
insert into table 2, 'value '
else
update table set a= 'value ' where SenNum=2


[解决办法]
"刷新时先看SenNum=2 "

刷新時,是指什麼?往表中插入一條數據?

看樣子,好象是要寫一個觸發器.
[解决办法]
create table #t6(SenNum int, A varchar(50))
insert #t6
select 1 , '我 ' union all
select 2 , '天 '


declare @SenNum int
declare @value varchar(50)
set @SenNum=2
set @value= '空 '
if (select count(1) from [#t6] where SenNum=@SenNum)> 0
begin
insert [#t6] select @SenNum, ' '+@value+ ' '
end
else
update [#t6] set a= ' '+@value+ ' ' where SenNum=@SenNum

查看结果
select * from #t6
[解决办法]
以上那个需要修改一下,下边这个可以满足lz所说的两种情况了。
drop table #t6
create table #t6(SenNum int, A varchar(50))
insert #t6
select 1 , '我 ' union all
select 2 , null


declare @SenNum int
declare @value varchar(50)
set @SenNum=2
set @value= '空 '
begin
if (select count(A) from [#t6] where SenNum=@SenNum)> 0
begin
insert [#t6] select @SenNum, ' '+@value+ ' '
end
else
begin
update [#t6] set a= ' '+@value+ ' ' where SenNum=@SenNum
end
end

select * from #t6
-------------
1我
2空

热点排行