如何在 Postgresql 中迭代字符串的字符?

xec*_*ons 6 string postgresql

我必须在 PostgreSQL 中创建一个函数来显示作为参数传递的字符串的成对字符。

我的想法是循环遍历字符串的字符,就像我在 C 或 Java 或其他语言中那样,但我不知道如何单独访问一个字符,例如,str[i]作为str一个字符串,和i字符的位置。

我所说的“字符对”是指字符对位置中的字符:即字符串中位置模 2 = 0 的字符。如果输入参数是“String”,则函数显示的字符将为“t”(即位置2,从位置1开始),以及“i”(即位置4)、“g”(即位置6)。

DrC*_*sos 10

迭代数组(最好的方法):

FOREACH ch IN ARRAY regexp_split_to_array('hello', '')
LOOP
  ...
END LOOP;
Run Code Online (Sandbox Code Playgroud)

迭代表:

FOR row_record IN
  SELECT tbl.col
  FROM regexp_split_to_table('hello', '') AS tbl(col)
LOOP
  ...
END LOOP;
Run Code Online (Sandbox Code Playgroud)

将使用列迭tbl代表col

 col
-----
 h
 e
 l
 l
 o
(5 rows)
Run Code Online (Sandbox Code Playgroud)

获得的价值超过row_record.col


不知道为什么你想“迭代”字符串。在我看来,这样的任务最好用编程语言来完成。