2016-07-22 9 views
0

Ich versuche, eine Javascript-Liste in einer Postgres-Tabellenspalte auszuwählen und zu analysieren, hat es keine Tasten hat:SQL: wie n-ten Wert von Json in postgresql zurückzukehren

{coastal,transitional,contemporary,romantic,traditional, 
industrial,modern,contemporary_eclectic,regency,mediterranean} 

Welche SQL-Befehl erhalten ist der n-te Wert?

Ich weiß, dass Sie Werte von Schlüsseln wie folgt zu erreichen:

SELECT {column_name}->>{key value} 
FROM {table_name} 

Aber ich mag wirklich nur Werte ziehen Listen-Wert um. Gibt es eine Syntax, die ich nicht finden kann? Oder muss ich dieses Array in einen anderen Datentyp umwandeln?

Antwort

2

Gleiches funktioniert tatsächlich für Arrays:

{column_name}->>N 

N wo der ganzzahlige Position eines Elements.

Referenzen:

+0

Ich weiß nicht, ich konnte das nicht zur Arbeit bekommen. Ich habe gerade das 'ish' herausgefunden: es ist eine typische Syntax für JS, fängt einfach nicht an 0: zu zählen zB: {column_name} [1] ist der erste Wert in der Liste –

+0

@ TaylorNelson es ist definitiv 0- Basis indiziert. – zerkms

+0

AH, ich denke dein Weg funktioniert auch –

0

Es stellte sich heraus, fragte ich die falsche Frage - ich Postgres-Array haben, keine JSON:

ich zu kämpfen, weil posgres Zählen Arrays beginnt auf Position 1, nicht 0 - doh!

{column_name}[1] //this is the first value in the array 
+1

Sie haben also kein JSON, sondern ein porstgresql-Array? – zerkms

+0

Richtig, Ihre Lösung ist großartig für meine Frage, ich habe die falsche Frage gestellt, weil ich dachte, dass es ein JSON-Array ist, das wir reichlich in unserem Schema haben. Vielen Dank! –

Verwandte Themen