日期:2014-05-18  浏览次数:20619 次

请问这个SQL语句如何写?
有表usermessage如下:
表1
————————————————id,user,message,write为列名
id user message write
1 test 哈哈 1
2 admin 我知道了 0
3 guoguo 1
… … … …
1000 令狐冲 施主你好 0
… … … …
————————————————
1.取得列名user下值为'令狐冲'的message值,如上面的表,即为“施主你好”

2.将取到message值随机替换到该表条件“ID区间2到200并且write列的值为0”的message列中,如上假设替换到id为2的那行的message中,并设置write的值为1,即表第二行变成:
————
2 admin 施主你好 1
——————
该表变成:
表2
——————
id user message write
1 test 哈哈 1
2 admin 施主你好 1
3 guoguo 1
… … … …
1000 令狐冲 施主你好 0
… … … …
——————


说简单的点就是我要把表1变成表2。。。不知道我有没有说明白,请帮帮忙写一下SQL语句
  



------解决方案--------------------
探讨

SQL code

IF EXISTS (SELECT 1 FROM SYSOBJECTS WHERE name = 'tba')
BEGIN
DROP TABLE tba
END
GO
CREATE TABLE tba
(
id INT,
[user] VARCHAR(100),
message VARCHAR(100),
write INT
)
GO……

------解决方案--------------------
select *from usermessage 
--update usermessage set message ='施主你好',write=1
where ID between '2'and '200' and write='0'


------解决方案--------------------
Decalre @message Varchar(20) 
Select @message = message From usermessage
Where user = '令狐冲'

UpDate usermessage
Set message = @message, write = 1
Where id = (cast( floor(rand()*198) as int)+2)