如何将列的值设置为选定选项中的字符串?

时间:2013-06-18 09:54:46

标签: sql sql-server tsql

我有以下字符串文字

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

我想将表中某个列的值随机设置为以上任何一个。

所以我想说

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

2 个答案:

答案 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()