字段值格式:
{"LocalStrings":[{"LanguageCode":"zh-Hans","Value":"客户要求取消订单"},{"LanguageCode":"en","Value":"Buyer request to cancel the deal"}],"DefaultLanguage":"en"}
SQL:
SELECT Code ,OperationType, SUBSTRING(GlobalName, CHARINDEX('"Value":"', GlobalName) + LEN('"Value":"'),
CHARINDEX('"},{"', GlobalName) - CHARINDEX('"Value":"', GlobalName)
- LEN('"Value":"'))
FROM OMSPrd.Sales.OrderOperationalType WHERE OperationType=1
解析:
select substring('abdcsef',1,3) --括号中数字‘1’表示截取的起始位置是从该字符串第一个字符开始,‘3’表示截取后得到的字符串长度为3个字符。
通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。
基本语法如下:
CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )
expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。
验证:
DECLARE @str NVARCHAR(max)='{"LocalStrings":[{"LanguageCode":"zh-Hans","Value":"客户要求取消订单"},{"LanguageCode":"en","Value":"Buyer request to cancel the deal"}],"DefaultLanguage":"en"}'
SELECT SUBSTRING(@str, CHARINDEX('"Value":"', @str) + LEN('"Value":"'),
CHARINDEX('"},{"', @str) - CHARINDEX('"Value":"', @str)
- LEN('"Value":"'))
CHARINDEX参考: https://www.cnblogs.com/qianxingdewoniu/p/6858580.html