Saltar al contenido

Generar una Letra Aleatoria

Configuración

Actualmente, Vinyl no tiene una función para generar aleatoriamente una letra del alfabeto o un número entre dos valores, pero es posible que necesites generar una letra aleatoria o un conjunto de caracteres por varias razones, incluida la despliegue de un código de carácter en una aplicación. Para esta tarea, tendremos que "escapar de Vinyl" y usar un secuencia de comandos SQL para generar un número aleatorio, y luego trabajar con Business Objects para convertir el número aleatorio en la letra correspondiente del alfabeto.

  1. Cree una subconsulta. En este ejemplo lo llamaremos Aplicación (Generador de números aleatorios). Luego usaremos el SELECT RAND() función que selecciona un número aleatorio entre 0 y 1. Para seleccionar un número aleatorio entre dos valores a y b, usamos la función SELECT RAND()*(b-a)+a; y sustituya nuestros valores a y b. en este caso, queremos un número entre 1 y 26 (porque hay 26 letras del alfabeto), por lo que elegimos 1 y 26 como nuestros valores a y b respectivamente. Esto nos dará un valor decimal, pero queremos un número entero, así que usamos el FLOOR() función para generar un número entero aleatorio que sea inclusivo (entero aleatorio >= 1 y <= 26).

  2. A continuación necesitamos crear una tabla de Letras con números enteros correspondientes a cada letra del alfabeto. La columna LetterID es un número entero de clave principal. La columna Letra es una cadena.

  3. Ahora podemos convertir el entero aleatorio en la letra correspondiente cruzando la tabla Letra con el objeto comercial Aplicación (generador de números aleatorios) que creamos anteriormente en una subconsulta llamada < strong>Letra (Conversión aleatoria de número a letra) y filtrado WHERE IIF(LetterID = AR.Rand, 1, 0) usando una bandera. Los resultados deben proporcionar una letra aleatoria cada vez que ejecute los resultados o actualice.