SQL语句随机更新

我有4000条数据,现在想把其中一个字段值改成A或者B或者C,意思是这3个字母随机分这4000条数据,语句怎么写呢
最新回答
桃靥

2024-10-17 11:48:02

假设你的4000条数据保存在A表中,字段名为XXX

SQL语句,将字段XXX更新为A或者B或者C的随机字符:
UPDATE A SET XXX = CHR(ROUND(DBMS_RANDOM.VALUE(65,67)));

--大写字母A的ASCII编码是65,依次类推,B是66,C是67

PS:如果4000条数据还有条件限制或它们保存的表有其它数据,请自行加上WHERE条件限制
晚街

2024-10-17 11:16:50

--创建视图
create view myview as select re=rand()

--自定义函数:取得指定范围的随机数
create function mydata(
@a int,
@b int)
returns decimal(38,0)
as
begin
declare @r decimal(38,0)
select @r=cast(re*(@b-@a)+@a as decimal(38,0)) from myview
return(@r)
end
go

--调用(可以随意指定你要的数据范围)
select user_no,dbo.mydata(1000,9999) number from table1

--可以在你原来的查询基础上增加一列number,如不增加列,
--那就把上面的结果放入一个临时表 #a,然后update
--如:
update table1 set number1=a.number from #a a,table1 b where a.user_no=b.user_no