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 に答える