然后创建临时表的其他方法是在内联查询中选择随机列值的优雅方法
SELECT [Col1],
[Col2],
ChooseRandomlyFrom('Lateral', 'AP', 'AP Ext Rot', 'PA', 'PA Obl', 'PA Pbl Int Rot', 'Lateral', 'L5 S1', 'PA Navicular'),
[Col3]
FROM [dbo].[MyTable]
我想在查询中每行随机生成一个样本数据集
感谢您的帮助!
答案 0 :(得分:2)
您可以通过在以下内容中使用带CASE
表达式的变量来实现它:
DECLARE @rand INT
SET @rand = ABS(CONVERT(BIGINT,CONVERT(BINARY(8), NEWID()))) % 3 + 1
SELECT [Col1],
[Col2],
CASE @rand
WHEN 1 THEN 'A'
WHEN 2 THEN 'B'
WHEN 3 THEN 'C'
ELSE 'D'
END AS RandColValue,
[Col3]
FROM [dbo].[MyTable]
或者你可以在下面没有变量的情况下实现它:
SELECT [Col1],
[Col2],
CASE ABS(CONVERT(BIGINT,CONVERT(BINARY(8), NEWID()))) % 3 + 1
WHEN 1 THEN 'A'
WHEN 2 THEN 'B'
WHEN 3 THEN 'C'
ELSE 'D'
END AS RandColValue,
[Col3]
FROM [dbo].[MyTable]
答案 1 :(得分:0)
您可以使用带选择功能
的变量来实现DECLARE @rand INT
SET @rand = ABS(CONVERT(BIGINT,CONVERT(BINARY(8), NEWID()))) % 3 + 1
SELECT [Col1],
[Col2],
Choose(@rand,'A','B','C','D') AS RandColValue,
[Col3]
FROM [dbo].[MyTable]