从字符串获取特定值

时间:2018-10-11 11:51:33

标签: sql sql-server-2008 sql-server-2014

我想从我的字符串中删除特定的值。我的字符串可以是任何长度。例如

字符串1:

  

{“ ABC”:1,“ ABC_DT”:-1,“ ABC_DBQty”:0,“ ABC_DSQty”:0,“ ABC_LMT”:1,“ ABC_DT”:-1,“ CTSD”:“ TEST”, “ SD”:1,“ TE”: 23 }

字符串2:

  

{“ ABC”:1,“ ABC_DT”:-1,“ ABC_DBQty”:0,“ ABC_DSQty”:0,“ ABC_LMT”:1,“ ABC_DT”:-1,“ CTSD”:“ TEST”, “ TE”: 23 }

我想要这个23。如何在SQL Server 2014中获取此信息?

3 个答案:

答案 0 :(得分:1)

解决方案:

DECLARE @str VARCHAR(MAX) = '{"ABC":1,"ABC_DT":-1,"ABC_DBQty":0,"ABC_DSQty":0,"ABC_LMT":1,"ABC_DT":-1,"CTSD":"TEST","TE":23}'
,@posA INT = 0
,@posB INT = 0
,@res VARCHAR(MAX) = ''

SET @posA = PATINDEX('%"TE":%}', @str) +5; 
SET @posB = CHARINDEX('}', @str, @posA+1);  

SET @res = SUBSTRING (@str ,@posA, @posB-@posA )  

SELECT @res AS 'STR_res', CAST(@res AS INT) AS 'INT_res'

答案 1 :(得分:1)

df = df.join(pd.DataFrame(L, index=df.index))
print (df)
   index source  timestamp         value bike1 bike2 car1 plane1 plane2 plane3
0      1    car          1          [98]   NaN   NaN   98    NaN    NaN    NaN
1      2   bike          2     [98, 100]    98   100  NaN    NaN    NaN    NaN
2      3    car          3          [65]   NaN   NaN   65    NaN    NaN    NaN
3      4   bike          4    [100, 120]   100   120  NaN    NaN    NaN    NaN
4      5  plane          5  [20, 12, 30]   NaN   NaN  NaN     20     12     30

答案 2 :(得分:0)