2012-06-12 21 views
11

Mam bazę danych w SQL Server 2008 i jedna konkretna tabela zawiera informacje przechowywane w polach jako tablice kodowane JSON. Zastanawiam się, czy istnieje podejście oparte na języku SQL, aby wybrać określone wartości w tym polu JSON?Czy można użyć SQL do wybrania wartości z tablicy JSON?

Mogę, oczywiście, po prostu wybrać pole i samemu przeanalizować informacje, ale staram się tego uniknąć, jeśli to w ogóle możliwe.

Z góry dzięki!

Odpowiedz

5

Nic natywnie, ale pierwsza odpowiedź na pytanie obserwacji odwołuje się artykuł o analizę składniową obiektów JSON w TSQL

Parse JSON in TSQL

Dla porównania, artykuł zainteresowania jest tutaj:

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

+0

Wow, facet, który napisał ten artykuł, zasługuje na nasz szacunek! @ tbone14, to może być twoje rozwiązanie, jeśli możesz dodać funkcje zdefiniowane przez użytkownika do bazy danych. – bfavaretto

+0

@bfavaretto: To dobre rzeczy, nieprawdaż. Nawet gbn to lubi! –

+1

Istnieje [wsparcie natywne] (https://msdn.microsoft.com/en-us/library/dn921900.aspx) począwszy od SQL Server 2016. – GSerg

2

No (cóż, istnieje dopasowanie podłańcuchowe, ale będzie wolne i podatne na błędy). Jeśli przechowujesz coś, co chcesz filtrować za pomocą SQL, nie używaj JSON, zamiast tego użyj oddzielnych kolumn/tabel.

+0

Nie mam żadnej kontroli nad strukturą bazy danych ani sposobem przechowywania informacji. Jestem tylko integratorem -_- – tbone14

Powiązane problemy