繁体   English   中英

从varchar列中提取第一个单词并将其反转

[英]Extract first word from a varchar column and reverse it

我的表中有以下数据

id nml               
-- ----------------- 
1  Temora sepanil    
2  Human Mixtard     
3  stlliot vergratob 

我需要通过提取nml列中的第一个单词并以相反的顺序获取其最后3字符来获得结果

这意味着输出应该像

nml               reverse 
----------------- ------- 
Temora sepanil    aro     
Human Mixtard     nam     
stlliot vergratob toi  

您使用PostgreSQL的字符串函数来实现所需的输出

在这种情况下,我使用split_partrightreverse函数

select reverse(right(split_part('Temora sepanil',' ',1),3)) 

输出:

aro 

因此您可以按照以下格式编写查询

select nml
      ,reverse(right(split_part(nml,' ',1),3)) "Reverse" 
from tbl
  1. 使用regexp_split_to_array(string text, pattern text [, flags text ])分割nml regexp_split_to_array(string text, pattern text [, flags text ])请参阅Postgres Doc了解更多信息。
  2. 使用reverse(str) (请参阅Postgres Doc )将上一个拆分的第一个单词反转。
  3. 使用substr(string, from [, count]) (请参阅Postgres Doc )选择反向测试的前三个字母

询问

SELECT 
    nml,
    substr(reverse(regexp_split_to_array(nml, E'\\s+')[0]),3) as reverse
FROM
    MyTable

您可以使用SUBSTRINGCHARINDEXRIGHTREVERSE函数

这是语法

  REVERSE(RIGHT(SUBSTRING(nml , 1, CHARINDEX(' ', nml) - 1),3))

样品:

  SELECT REVERSE(RIGHT(SUBSTRING(nml , 1, CHARINDEX(' ', nml) - 1),3)) AS 'Reverse' 
  FROM TableNameHere

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM