Retorna uma Linha Aleatória de uma Tabela
Aqui está um guia rápido de instruções que permite que você retorne uma linha aleatória de qualquer tabela, o que pode ser útil para amostragem em testes:
-
Na camada de lógica de negócios, crie um objeto de negócios que gere números de linha sobre a(s) chave(s) primária(s) da tabela desejada.
-
Por exemplo: Customer (Generate Row Number) é um objeto que seleciona a tabela PK e tem um valor Expression que gera o número da linha com esta sintaxe de tipo:
${ROW_NUMBER() OVER(ORDER BY C.CustomerID)}
-
-
Crie outro Business Object que selecione o Max row number usando os resultados da etapa 1
-
Por exemplo: Customer (Max Row Number) é um objeto que usa o objeto da etapa 1 e tem um valor Expression que fornece o valor Max Row Number com esta sintaxe de tipo:
MAX(CGRN.RowNum)
-
-
Crie um novo Objeto de Negócio que combine os objetos criados nas Etapas 1 e 2 e, em seguida, use a função RAND() para gerar um número de 1 até esse número Max e filtre onde o número aleatório gerado = número da linha. Faça Cross Join nos dois objetos usados nesta Regra.
-
Por exemplo: Esta Regra tem as seguintes Colunas definidas:
ROW.CustomerID
MAX.MaxRowNum
${FLOOR(RAND() * (MAX.MaxRowNum + 1))
-