2012-06-12 7 views
11

Ho un database in SQL Server 2008 e una tabella specifica contiene informazioni memorizzate nei campi come array con codifica JSON. Mi chiedo se esiste un approccio basato su SQL per selezionare valori specifici all'interno di quel campo JSON?È possibile utilizzare SQL per selezionare i valori da un array JSON?

Posso, ovviamente, selezionare solo il campo e analizzare le informazioni da me stesso, ma sto cercando di evitarlo, se possibile.

Grazie in anticipo!

risposta

5

Non c'è niente in modo nativo, ma la prima risposta sulla questione di follow fa riferimento a un articolo su parsing oggetti JSON in TSQL

Parse JSON in TSQL

Per riferimento, l'articolo di interesse è qui:

http://www.simple-talk.com/sql/t-sql-programming/consuming-json-strings-in-sql-server/

+0

Wow, il tizio che ha scritto quell'articolo merita il nostro rispetto! @ tbone14, questa può essere la soluzione, se è possibile aggiungere funzioni definite dall'utente al database. – bfavaretto

+0

@bfavaretto: Le sue buone cose non lo sono. Anche a gbn piace! –

+1

Esiste [supporto nativo] (https://msdn.microsoft.com/en-us/library/dn921900.aspx) a partire da SQL Server 2016. – GSerg

2

No (beh, c'è la corrispondenza della sottostringa, ma che sarebbe lenta e soggetta a errori). Se stai memorizzando qualcosa che vuoi filtrare con SQL, non usare JSON, usa invece colonne/tabelle separate.

+0

Non ho alcun controllo sulla struttura del database o su come le informazioni sono archiviate. Sono solo l'integratore -_- – tbone14

Problemi correlati