Я решил это с помощью некоторых вызовов RAND (). Я пытался создать вычисляемые столбцы, но все вставки получали одинаковое значение. Значение было случайным от звонка к звонку, но то же самое в запросе. Каждый раз вставляя разные вызовы RAND (), я должен был повторить логику регистра для каждого значения, что было не совсем идеально. Вот как я решил это:
DECLARE @RandomizedTypes TABLE
(
TempId FLOAT
, d1 VARCHAR(3)
, [Date] DATETIME
)
INSERT @RandomizedTypes
(
TempId
, d1
, [Date]
)
VALUES
(RAND(), 'N', '2012-03-09 00:00:00.000')
, (RAND(), 'No', '2011-09-26 00:00:00.000')
, (RAND(), 'N', '2012-01-26 00:00:00.000')
, (RAND(), 'N', '2012-03-07 00:00:00.000')
, (RAND(), 'yes', '2012-02-23 00:00:00.000')
, (RAND(), 'N', '2012-03-09 00:00:00.000')
, (RAND(), 'No', '2011-09-26 00:00:00.000')
, (RAND(), 'N', '2012-01-26 00:00:00.000')
, (RAND(), 'N', '2012-03-07 00:00:00.000')
, (RAND(), 'yes', '2012-02-23 00:00:00.000')
DECLARE @FinalRandomizedTable TABLE
(
id INT IDENTITY(1, 1)
, d1 VARCHAR(3)
, [Date] DATETIME
, [Type] AS CASE WHEN (id % 2) = 0 THEN 'R' ELSE 'C' END
)
INSERT @FinalRandomizedTable
(
d1
, [Date]
)
SELECT
d1
, [Date]
FROM @RandomizedTypes
ORDER BY TempId
SELECT * FROM @FinalRandomizedTable
РЕДАКТИРОВАТЬ: Изменено для чередования строк 'R' и 'C' согласно обновленному вопросу.