在SQL中使用substring

时间:2017-01-04 10:09:47

标签: sql postgresql

我的查询如下:

SELECT id, category FROM table1

返回以下行:

ID|category
1 |{IN, SP}
2 | 
3 |{VO}

有谁知道我如何删除PostgreSQL中字符串的第一个字符和最后一个字符,所以删除:{}?

7 个答案:

答案 0 :(得分:6)

不确定,您对" 外来列"的意思是什么,但由于该列是一个数组,处理它的最佳方法是使用{{1} }

array_to_string()

花括号不是存储值的一部分。这只是用于显示的数组的string representation

答案 1 :(得分:3)

使用多个REPLACE函数。

SELECT id, REPLACE(REPLACE(category, '{', ''), '}', '') 
FROM table1

或使用SUBSTRINGLEFT&组合LENGTH函数

SELECT id, LEFT(SUBSTRING(category, 2, 999),LENGTH(SUBSTRING(category, 2, 999)) - 1)
FROM table1

或只是SUBSTRINGLENGTH

SELECT id, SUBSTRING(category, 2, LENGTH(category)-2)
FROM table1

答案 2 :(得分:1)

您可以用空字符串替换try (OutputStream out = resp.getOutputStream()) { out.write(1); } catch (Exception e) { e.printStackTrace(); }

{{1}}

答案 3 :(得分:0)

select id,
      substring(category,charindex('{',category,len(category))+2,len(category)-2) 
from table1;

答案 4 :(得分:0)

select id
      ,left(right(category,length(category)-1),length(category)-2) category 
from boo
select id
       ,trim(both '{}' from category) 
from boo 

Trim()

  

删除仅包含字符的最长字符串(空格   默认)从字符串的开头/结尾/两端

答案 5 :(得分:-1)

PostgreSQL中替换函数的语法是:

replace(string,from_substring,to_substring)

参数或参数

<强>字符串
源字符串。

<强> from_substring
要查找的子字符串。在string中找到的所有出现的from_substring都替换为to_substring 的 to_substring
替换子字符串。在string中找到的所有出现的from_substring都替换为to_substring。

答案 6 :(得分:-1)

UPDATE dbo.table1
SET category = REPLACE(category, '{', '')
WHERE ID <=3

UPDATE dbo.table1
SET category = REPLACE(category, '}', '')
WHERE ID <=3