0

我有以下字符串文字

('Tv','Radio','Magazine','Internet')

我想将表中某一列的值随机设置为上述任意值。

所以我想说

update table set type to (('Tv' or 'Radio' or 'Magazine' or 'Internet'))
4

2 回答 2

1

您可以使用 0 到 3 范围内的随机数

select aBS(CHECKSUM(NewId())) % 4 

这是有效的,因为 newid() 是一个非确定性函数,并且将为每一行返回不同的(随机)值。所以用它来做一个案例陈述

update table set type = case aBS(CHECKSUM(NewId())) % 4 
when 0 then 'Tv'
when 1 then 'Radio' 
when 2 then 'Magazine'
when 3 then 'Internet'  end
于 2013-06-18T10:00:38.653 回答
1
CREATE TABLE #rnd (col VARCHAR(25))
INSERT INTO #rnd
SELECT slit FROM
(
   SELECT 'Tv' AS slit
   UNION ALL
   SELECT 'Radio' AS slit
   UNION ALL
   SELECT 'Magazine' AS slit
   UNION ALL
   SELECT 'Internet' AS slit
) AS foo
GO
SELECT TOP 1 * FROM #rnd ORDER BY newid()
于 2013-06-18T10:00:52.740 回答