Ir para o conteúdo

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:

  1. 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)}

  2. 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)

  3. 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))