簡體   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