У меня есть строковые данные json.
{ "salesremarks": { "InternalCode":0, "Remark":"" },
"OTH": { "ZALO_DYN":"", "Payment_mode":"1", "Max_req_EIR":"55" }........
Есть ли способ проанализировать этот тип данных в SQL Server 2012?
Я использую для этого строковую функцию, но они тоже не работают
Вам действительно нужно анализировать содержимое JSON внутри базы данных?
Есть способ? да. Подходит ли SQL Server для синтаксического анализа строк? Нет.
Извините всех. Я ошибся. Это точно Ms sql server 2012.
Если нет возможности проанализировать json до SQL 2016. Итак, как я могу разбить эту большую строку на основе некоторых ключевых слов для этой большой строки. Спасибо.
Я видел это некоторое время назад. Не было времени посмотреть, насколько хорошо это работает. simple-talk.com/sql/t-sql-programming/…

В SQL Server 2016 есть функции для его анализа, для предыдущих версий вам нужно будет анализировать его самостоятельно. Вот пример анализа ваших демонстрационных данных:
declare @STRING varchar(max);
declare @SalesRemarks_InternalCode varchar(256);
declare @SalesRemarks_Remark varchar(256);
declare @OTH_ZALO_DYN varchar(256);
declare @OTH_Payment_mode varchar(256);
declare @OTH_Max_req_EIR varchar(256);
set @STRING = '{ "salesremarks": { "InternalCode":0, "Remark":"" }, "OTH": { "ZALO_DYN":"", "Payment_mode":"1", "Max_req_EIR":"55" } }'
set @SalesRemarks_InternalCode = substring(@STRING, charindex('"InternalCode"', @STRING) + 15, charindex(',', substring(@STRING, charindex('"InternalCode"', @STRING) + 16, 8000)))
set @SalesRemarks_Remark = substring(@STRING, charindex('"Remark"', @STRING) + 10, charindex('"', substring(@STRING, charindex('"Remark"', @STRING) + 10, 8000)) - 1)
set @OTH_ZALO_DYN = substring(@STRING, charindex('"ZALO_DYN"', @STRING) + 12, charindex('"', substring(@STRING, charindex('"ZALO_DYN"', @STRING) + 12, 8000)) - 1)
set @OTH_Payment_mode = substring(@STRING, charindex('"Payment_mode"', @STRING) + 16, charindex('"', substring(@STRING, charindex('"Payment_mode"', @STRING) + 16, 8000)) - 1)
set @OTH_Max_req_EIR = substring(@STRING, charindex('"Max_req_EIR"', @STRING) + 15, charindex('"', substring(@STRING, charindex('"Max_req_EIR"', @STRING) + 15, 8000)) - 1)
select @SalesRemarks_InternalCode as SalesRemarks_InternalCode, @SalesRemarks_Remark as SalesRemarks_Remark, @OTH_ZALO_DYN as OTH_ZALO_DYN, @OTH_Payment_mode as OTH_Payment_mode, @OTH_Max_req_EIR as OTH_Max_req_EIR
Результат :
+---------------------------+---------------------+--------------+------------------+-----------------+
| SalesRemarks_InternalCode | SalesRemarks_Remark | OTH_ZALO_DYN | OTH_Payment_mode | OTH_Max_req_EIR |
+---------------------------+---------------------+--------------+------------------+-----------------+
| 0 | | | 1 | 55 |
+---------------------------+---------------------+--------------+------------------+-----------------+
Вы уверены, что это версия
MS SQL Server 2010?