En este articulo aprenderás como crear una expresión SQL a partir de una selección por localización.
Seguramente te ha pasado que debes mostrar un subconjunto de elementos que pertenecen a un feature class (o shapefile) que se interceptan con otra capa o elementos que tienes seleccionados manualmente, pero no quieres crear una nueva capa, una opción es hacer una selección por localización, o ya con los registros seleccionados darle clic derecho a la capa, presionar el botón "Selection" y seleccionar la opción "Create Layer From Selected Features"; esto creará una capa nueva temporal solo con los elementos seleccionados, pero habrás perdido la simbología y está capa no estará involucrada en ningún elemento de alguna leyenda que hayas establecido previamente, y como lo mencioné, es temporal.
Si bien puedes hacer un listado de los elementos manualmente y crear luego una expresión SQL, esto se empieza a complicar cuando son decenas, centenas o miles de elementos y aunque no hay forma de hacer directamente una expresión SQL a partir de una selección en ArcGIS, te mostrare una solución, pero necesito que tengas una mente abierta, este procedimiento es poco convencional, sin embargo, recuerda que ciencia es ver lo que todos ven, y pensar lo que nadie ha pensado, llevado a nuestro contexto, puedes lograr cosas nuevas con tu conocimiento previo si eres ingenioso. El paso a paso te lo describo a continuación.
SQL a partir de una selección
Paso 1: Selecciona los elementos que necesites, ya sea con una seleccion por localizacion, seleccion manual de los elementos geometricos o seleccion de los registros de la tabla de atributos.
Paso 2: Darle clic derecho a la capa y presionar el botón "Open Attribute Table" para abrir la tabla de atributos (a).
Paso 3: Presiona el botón "Show selected records" (a) y sitúate en la esquina superior izquierda, en el primer registro, haz clic derecho (b) y presiona el botón "Copy Selected" (c).
Paso 4: Abre un libro de Excel, y pega la información de la tabla de atributos que acabas de copiar situándote en la celda A1 (a) y presiona Ctrl+V (b).
Paso 5: Selecciona la columna que tenga los tributos con los que puedas diferenciar los elementos seleccionados, puede ser el campo OBJECTID, o algún otro; descartando en la selección el encabezado de la columna (a).
Paso 6: Copia los registros de esta columna (a) y crea una nueva hoja de cálculo, sitúate en la celda A1 en el menú Pegar, selecciona la opción de transponer (b) para pegar la información en esta nueva hoja.
Paso 7: Guarda esta nueva hoja de calculo como un archivo separado por comas ".CVS" (a), y abre este archivo con un editor de texto, como blog de notas (b).
Paso 8: Si el campo original de la tabla de atributos es tipo numérico (double o integer, etc.) copia todo el contenido del bloc de notas y ve al próximo paso (a). Si el tipo de datos es alfanumérico, reemplaza las comas (,) por comilla, coma, comilla (‘,’) y copia todo el contenido de todo el blog de notas una vez hecha esta modificación.
Paso 9: De vuelta en ArcGIS, haz clic derecho a la capa a la que le quieres aplicar la expresión SQL y presiona el botón "Properties..." (a), luego ve a la pestaña "Definition Query" (b) y pega la siguiente expresión en el recuadro correspondiente.
FIELD in (‘REPALCE’)
Paso 10: De la expresión anterior pegada en ArcGIS, reemplaza la palabra FIELD con el nombre del campo a utilizar, el mismo del paso 5, y la palabra REPLACE, con lo copiado del blog de notas (Mantener las comillas originales de la expresión si el campo es alfanumérico, si el campo es numérico solo conserva los paréntesis)
Paso 11: Presionar el botón "OK" para aplicar la expresión.
Listo, con esto habrás logrado hacer una expresión SQL a partir de elementos seleccionados.
Espero hayas disfrutado este artículo, próximamente subiré un video explicativo del procedimiento que podrás consultar en este blog. Guarda mi blog entre tus enlaces favoritos, estaré subiendo muchos más trucos de este estilo, recuerda que puedes hacer llegarme tus inquietudes en la página de contacto o deja tu comentario, estaré atento a responder.










