我有以下字符串文字
('Tv','Radio','Magazine','Internet')
我想将表中某个列的值随机设置为以上任何一个。
所以我想说
update table set type to (('Tv' or 'Radio' or 'Magazine' or 'Internet'))
答案 0 :(得分: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
答案 1 :(得分: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()