3

我有一列值,例如:

 [{"run_status":1,"daily_budget":"2000","campaign_id":"60952315"}].

删除第一个和最后一个括号的查询是什么,所以我留下了

 {"run_status":1,"daily_budget":"2000","campaign_id":"60952315"}    

如果您的答案取决于 SQL 版本,我正在使用 Hive。

4

3 回答 3

11

数据库中的字符串操作通常在不同版本之间有所不同。在 Hive 中,您需要:

select substr(<val>, 2, length(<val>) - 2)
于 2012-07-18T21:07:58.953 回答
0

您可以使用 SUBSTR:

SUBSTR( 字符串 source_str, int start_position [,int length] ), SUBSTRING( string source_str, int start_position [,int length] )

http://www.folkstalk.com/2011/11/string-functions-in-hive.html

于 2012-07-18T21:06:42.103 回答
0

这是快速和肮脏的,但另一种方法是创建一个值数组来替换和迭代它们。

    declare @origString varchar(150)
        ,@newString varchar(150)
        , @replace varchar(10)
        , @replace2 varchar(10)
        , @replaceValue varchar(10)

    set @replaceValue =''
    set @replace = '['
    set @replace2 =']'
    set @origString = '[{"run_status":1,"daily_budget":"2000","campaign_id":"60952315"}]'

    select REPLACE(REPLACE(@origString, @replace, @replaceValue), @replace2, @replaceValue)
于 2012-07-18T21:21:27.030 回答