Поиск SO дает много результатов, описывающих, как выбрать случайные строки данных из таблицы базы данных. Однако мое требование немного иное: я бы хотел выбрать отдельные столбцы из случайных строк наиболее эффективным / случайным / интересным способом.
Чтобы лучше проиллюстрировать: у меня есть большая таблица «Клиенты», и из этого я хотел бы создать несколько вымышленных демо-записей клиентов, которые не являются реальными людьми. Я думаю о том, чтобы просто выполнить произвольный запрос из таблицы «Клиенты», а затем случайным образом связать FirstNames с LastNames, Address, City, State и т. Д.
Так что, если это мои реальные данные клиента (упрощенно):
FirstName LastName State
==========================
Sally Simpson SD
Will Warren WI
Mike Malone MN
Kelly Kline KS
Тогда я бы сгенерировал несколько записей, которые выглядят так:
FirstName LastName State
==========================
Sally Warren MN
Kelly Malone SD
Etc.
Мой первоначальный подход работает, но ему не хватает элегантности, которую, я надеюсь, даст окончательный ответ. (Я особенно недоволен повторяемостью подзапросов и тем фактом, что это решение требует известного / фиксированного числа полей и поэтому не может использоваться повторно.)
SELECT
FirstName = (SELECT TOP 1 FirstName FROM Customer ORDER BY newid()),
LastName= (SELECT TOP 1 LastNameFROM Customer ORDER BY newid()),
State = (SELECT TOP 1 State FROM Customer ORDER BY newid())
Спасибо!