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.
-
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ónSELECT 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 elFLOOR()
función para generar un número entero aleatorio que sea inclusivo (entero aleatorio >= 1 y <= 26). -
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.
-
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.