Caratteri specifici di query ArcGIS nella parte specifica di un campo


9

Usando ArcGIS 10.2.2, ho un campo stringa in una tabella degli attributi SDE. Ho bisogno di aiuto per creare una query per selezionare tutti i record che hanno uno zero nel sesto e settimo carattere del campo (es. 1995-0023A). Per aiutarmi a comprendere meglio questo tipo di query, vorrei anche essere in grado di vedere una query che seleziona i record con uno zero solo nel sesto carattere del campo. Posso quindi usare la clausola "e" e duplicarla per selezionare anche il settimo carattere.

Ho provato varianti di "FIELD1" LIKE '%00_______'ma non seleziona i record con i doppi zero nella posizione corretta nella stringa.


Ho provato le varianti di "FIELD1" COME '% 00 _______' ma non seleziona i record con i doppi zero nella posizione corretta nella stringa.
Steve,

Qualcosa del genere "FIELD1" LIKE '_____00%'? Questo userebbe cinque caratteri jolly, quindi i tuoi due zeri, quindi un altro carattere jolly per il resto della stringa. In che tipo di database sono presenti? SQL Server, Oracle, qualcos'altro? Si prega di modificare la tua domanda per includere le informazioni dal commento di cui sopra, e dettagli sui database (versione etc.)
Midavalo

"field_name" LIKE '% 00%' restituisce tutti i campi con doppi zeri uno accanto all'altro, se non aiuta la sesta o la settima posizione.
NULL.Dude

Un carattere di sottolineatura _viene utilizzato in alcuni database come carattere jolly posto a carattere singolo. Una percentuale %è un jolly per tutti i personaggi.
Midavalo

1
Grazie ragazzi, sembra che la query sia stata invertita. Il suggerimento di Midavalo ha funzionato: FIELD1 COME "_____ 00%". È un Oracle DB.
Steve,

Risposte:


12

Un carattere di sottolineatura _viene utilizzato in alcuni database come carattere jolly posto a carattere singolo. Una percentuale %è un jolly per tutti i personaggi.

Pertanto, qualcosa del genere "FIELD1" LIKE '_____00%'dovrebbe funzionare, a seconda del tipo di database. Questo userebbe cinque caratteri jolly, quindi i tuoi due zeri, quindi un altro carattere jolly per il resto della stringa.


funzionerebbe anche nel DB di MS SQL Server?
NULL.Dude

1
@Joe Sì, dovrebbe - Ho usato questo metodo per query simili in passato in SQL Server, ma non posso testarlo adesso.
Midavalo

3

Quanto segue selezionerebbe tutti i record che hanno uno zero nella posizione del sesto carattere e nella posizione del settimo carattere.

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

Ci sono cinque trattini bassi che precedono lo zero nella prima parte dell'espressione e poi sei trattini bassi che precedono lo zero nella seconda parte. Il carattere di sottolineatura è un 'carattere jolly' che richiede la presenza di qualsiasi carattere (può essere uno spazio, un numero, una lettera, un simbolo, ecc.). Il carattere jolly percentuale (%) consente di seguire qualsiasi cosa (inoltre non consente di seguire nulla, non richiede alcun carattere).

Un modo più conciso per interrogarlo sarebbe

FIELDNAME like '_____00%'

-1

Questo dipende da RDBMS, sebbene quanto segue dovrebbe funzionare nella maggior parte dei casi:

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


Benvenuti in GIS SE! Come nuovo utente, partecipa al tour per conoscere il nostro formato di domande e risposte mirato. Hai avuto questo lavoro con successo? Nella mia esperienza SUBSTRING()non ho mai funzionato nell'SQL limitato di ArcMap. È qui che lo usi o lo usi altrove? Potresti modificare la tua risposta per espanderla?
Midavalo

L'OP ha dichiarato che questo era in SDE, non in un file geodatabase, mdb o shapefile. SDE detta un RDBMS. La query ArcMap si basa sulla parte in cui l'SQL, in base al particolare RDBMS in cui esiste l'SDE (importante sapere in quale tipo di database si trovano i dati, poiché la sintassi può differire). Sì, ho avuto questo successo con successo numerose volte nei miei oltre 20 anni come amministratore SDE. L'ho inserito come un'opzione, poiché non tutti gli RDBMS utilizzeranno l'opzione '_'. La mia soluzione è semplicistica e probabilmente vecchia, ma funziona in un ambiente SDE.
CaptRay,

Ho chiesto come avevo testato l'ultima settimana e non ha funzionato. Potrei aver sbagliato, ma non ha funzionato per me.
Midavalo

In SDE? In tal caso, su quale RDBMS si trova il tuo SDE? Sono davvero curioso, poiché gli ambienti RDBMS mi incuriosiscono, in particolare per le differenze. L'ho testato (con successo su Oracle e SQL Server) prima di pubblicare anche. SUBSTRING non sarà valido per gli shapefile. Funzionerà per i file di geodatabase.
CaptRay

a proposito, la sintassi di Oracle è SUBSTR.
CaptRay,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.