Filtrar y ordenar datos de BD
En este tema explicamos cómo puede filtrar y ordenar datos de base de datos utilizando un componente WHERE/ORDER de SQL/NoSQL. Este componente le permite introducir manualmente una cláusula WHERE para filtrar los datos. Si lo desea, también puede:
•Especificar una cláusula ORDER BY para ordenar los datos según un campo concreto de la base de datos, en orden ascendente o descendente.
•Marque la casilla Seleccionar solo filas distintas para que la base de datos devuelva únicamente filas únicas.
El componente WHERE/ORDER de SQL/NoSQL debe estar conectado a una tabla o campo de un componente de base de datos de origen. También puede conectar un componente WHERE/ORDER a un componente de combinación para filtrar el conjunto de registros unidos.
Agregar un componente WHERE/ORDER de SQL/NoSQL
Para añadir un componente WHERE/ORDER de SQL/NoSQL a la asignacón:
1.Seleccione el comando de la barra de herramientas Insertar WHERE/ORDER de SQL/NoSQL. Otra opción es seleccionar WHERE/ORDER de SQL/NoSQL en el menú Insertar o en la Galería de componentes. Este componente presenta esta estructura predeterminada:
2.Conecte una tabla o campo de la base de datos de origen al elemento db-object del componente WHERE/ORDER.
3.Para especificar una cláusula WHERE, haga doble clic en el título del componente WHERE/ORDER. Otra opción es hacer clic con el botón derecho y seleccione Propiedades en el menú contextual. Esto abre el cuadro de diálogo Propiedades del componente WHERE/ORDER de SQL/NoSQL.. La imagen siguiente muestra las propiedades del componente WHERE/ORDER en el archivo MapForceExamples\DB_PhoneList.mfd.
4.Escriba la cláusula WHERE en el cuadro de texto superior. En nuestro ejemplo, la cláusula WHERE (Last LIKE :Name) devuelve las filas en las que el campo Last coincide con el patrón especificado por el parámetro :Name. Los valores de este parámetro se obtienen de la asignación. Si lo desea, añada una cláusula ORDER BY. En nuestro ejemplo, la cláusula ORDER BY ordena los valores Last en orden ascendente. Para más Información, consulte Cláusulas WHERE y ORDER BY.
Parámetros en componentes WHERE/ORDER de SQL/NoSQL.
Puede definir parámetros en la cláusula WHERE de un componente WHERE/ORDER de SQL/NoSQL. Pueden resultar útiles si desea pasar un valor a la cláusula WHERE desde la asignación.
En el componente WHERE/ORDER que se muestra más arriba, la cláusula WHERE se especifica de la siguiente manera:
Last LIKE :Name, donde:
•Last hace referencia al campo de la base de datos en la tabla conectada.
•LIKE es un operador SQL que realiza la comparación de patrones.
•:Name es un parámetro que recibe valores de la asignación.
En MapForceExamples\DB_PhoneList.mfd, Name aparece como parámetro del componente WHERE/ORDER (imagen siguiente).
El valor que se pasa a este parámetro se calcula de la siguiente manera:
•La constante proporciona el valor B al componente de entrada simple.
•La función concat combina B con el comodín %.
•El valor concatenado (B%) se introduce en el parámetro Name del componente WHERE/ORDER. Por lo tanto, la cláusula WHERE devuelve únicamente los apellidos que comienzan por la letra B. El comodín % representa cualquier número de caracteres.
Aspecto de los componentes WHERE/ORDER de SQL/NoSQL
Los componentes WHERE/ORDER de SQL/NoSQL cambian su aspecto en función de la configuración que tengan definida (ver tabla siguiente).
Se ha definido una cláusula WHERE. | |
![]() | Se ha definido una cláusula WHERE con un parámetro denominado sqlparameter. |
![]() | Se han definido una cláusula WHERE con un parámetro y una cláusula ORDER BY. La ordenación se indica mediante el icono de ordenación A-Z. |
Si coloca el cursor sobre el título del componente WHERE/ORDER de SQL/NoSQL, aparecerá información rápida que muestra las cláusulas que se han definido.
Ejemplos
Para ver ejemplos en los que se utiliza el componente WHERE/ORDER, consulte las siguientes asignaciones:
•MapForceExamples\DB_PhoneList.mfd
•MapForceExamples\ParseJSONFromDB.mfd



