SQL:通过从右侧和左侧删除字符来获取子字符串

时间:2012-07-18 21:01:23

标签: sql string substring hive

我有一列值,如:

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

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

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

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

3 个答案:

答案 0 :(得分:10)

数据库中的字符串操作通常因不同版本而异。在Hive中,您需要:

select substr(<val>, 2, length(<val>) - 2)

答案 1 :(得分:0)

您可以使用SUBSTR:

SUBSTR(string 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

答案 2 :(得分: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)