我的表格中有以下数据
id nml
-- -----------------
1 Temora sepanil
2 Human Mixtard
3 stlliot vergratob
我需要通过提取列nml
中的第一个单词并使用相反的顺序获取其最后3
个字符来获得结果
这意味着输出应该像
nml reverse
----------------- -------
Temora sepanil aro
Human Mixtard nam
stlliot vergratob toi
答案 0 :(得分:0)
使用PostgreSQL的string functions来实现所需的输出
在这种情况下使用split_part
,right
,reverse
函数
select reverse(right(split_part('Temora sepanil',' ',1),3))
输出:
aro
所以你可以用以下格式编写你的查询
select nml
,reverse(right(split_part(nml,' ',1),3)) "Reverse"
from tbl
答案 1 :(得分:0)
nml
分割regexp_split_to_array(string text, pattern text [, flags text ])
,请参阅Postgres Doc了解详情。reverse(str)
(请参阅Postgres Doc)撤消之前拆分的第一个单词。substr(string, from [, count])
(参考Postgres Doc)选择反向测试的前三个字母查询
SELECT
nml,
substr(reverse(regexp_split_to_array(nml, E'\\s+')[0]),3) as reverse
FROM
MyTable
答案 2 :(得分:0)
您可以使用SUBSTRING
,CHARINDEX
,RIGHT
和REVERSE
功能
这是语法
REVERSE(RIGHT(SUBSTRING(nml , 1, CHARINDEX(' ', nml) - 1),3))
<强>样品:强>
SELECT REVERSE(RIGHT(SUBSTRING(nml , 1, CHARINDEX(' ', nml) - 1),3)) AS 'Reverse'
FROM TableNameHere