9 votos

ArcGIS consulta caracteres específicos en una parte concreta de un campo

Utilizando ArcGIS 10.2.2, tengo un campo de cadena en una tabla de atributos SDE. Necesito ayuda para crear una consulta que seleccione todos los registros que tengan un cero en el 6º y 7º carácter del campo (es decir, 1995-0023A). Para ayudarme a entender mejor este tipo de consulta, también me gustaría poder ver una consulta que seleccione los registros con un cero sólo en el 6º carácter del campo. Luego puedo utilizar la cláusula "and" y duplicarla para seleccionar también el 7º carácter.

He probado variaciones de "FIELD1" LIKE '%00_______' pero no selecciona los registros con los dobles ceros en el lugar correcto de la cadena.

0 votos

He probado variaciones de "FIELD1" LIKE '%00_______' pero no selecciona registros con los dobles ceros en el lugar correcto de la cadena.

0 votos

Algo así como "FIELD1" LIKE '_____00%' ? Esto utilizaría comodines de cinco caracteres, luego sus dos ceros, y luego otro comodín para el resto de la cadena. ¿En qué tipo de base de datos están? ¿SQL Server, Oracle, otra cosa? Por favor, editar su pregunta para incluir la información de su comentario anterior, y detalles sobre su base de datos (versión de lanzamiento, etc.)

0 votos

"nombre_campo" LIKE '%00%' esto devolverá todos los campos con dobles ceros uno al lado del otro no utiliza la 6ª o 7ª posición si eso ayuda.

12voto

Gavin Schulz Puntos 592

Un guión bajo _ se utiliza en algunas bases de datos como comodín de un solo carácter. Un porcentaje % es un comodín para todos los lugares de los caracteres.

Por lo tanto, algo como "FIELD1" LIKE '_____00%' debería funcionar, dependiendo del tipo de base de datos. Eso usaría comodines de cinco caracteres, luego sus dos ceros, y luego otro comodín para el resto de la cadena.

0 votos

¿funcionaría esto también en MS SQL Server DB?

1 votos

@Joe Sí debería - He utilizado este método para consultas similares en el pasado en SQL Server, pero no puedo probarlo ahora mismo.

3voto

applOOb Puntos 171

Lo siguiente seleccionaría todos los registros que tienen un cero en la posición del 6º carácter, así como en la posición del 7º carácter.

FIELDNAME like '_____0%' and FIELDNAME like '______0%'

Hay cinco guiones bajos que preceden al cero en la primera parte de la expresión y seis guiones bajos que preceden al cero en la segunda parte. El guión bajo es un "comodín" que requiere la presencia de cualquier carácter (puede ser un espacio, un número, una letra, un símbolo, etc.). El comodín de porcentaje (%) permite que le siga cualquier cosa (también permite que no le siga nada - no requiere ningún carácter).

Una forma más sucinta de consultar esto sería

FIELDNAME like '_____00%'

-1voto

vignesh Puntos 103

Esto depende del RDBMS, aunque lo siguiente debería funcionar en la mayoría:

SUBSTRING(fieldname, 6, 2) = '00'

0 votos

¡Bienvenido a GIS SE! Como nuevo usuario, por favor tome el tour para conocer nuestro formato de preguntas y respuestas. ¿Ha funcionado esto con éxito? Según mi experiencia, el SUBSTRING() nunca funcionó en el limitado SQL de ArcMap. ¿Es aquí donde lo usas, o lo usas en otra parte? ¿Podría editar su respuesta para ampliarla?

0 votos

El OP declaró que esto estaba en SDE, no en un archivo de geodatabase, mdb, o shapefile. SDE dicta un RDBMS. La consulta de ArcMap se basa en la porción de SQL, basado en el RDBMS particular, donde el SDE existe (importante saber qué tipo de base de datos está en, como la sintaxis puede diferir). Sí, he hecho esto con éxito numerosas veces en mis más de 20 años como administrador de SDE. He incluido esto como una opción, ya que no todos los RDBMS utilizan la opción '_'. Mi solución es simplista y podría decirse que es antigua, pero funciona en un entorno SDE.

0 votos

Lo he preguntado porque la semana pasada lo probé y no funcionó. Puede que lo haya hecho mal, pero no me funcionó.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X