我有以下几行文字:
"Blue pill";
"Red pill";
"Blue shift";
"Red eye"
。
我想选择其中Red
是第一个单词或Pill
是第二个单词的行。假设地,可以使用tsquery
和tsvector
来完成,因为tsvector
的输出还包含每个词素的位置。但是,我找不到任何允许按其编号访问向量词素的函数。
是否有任何适当的方法来选择在定义位置匹配ts_query
的行?
答案 0 :(得分:2)
使用tsvector进行此操作是可能的:
select ClientID, ClientREF,
max(case when seqnum = 1 then AgentID end) AS FirstOFAgentID, F
max(case when seqnum = 1 then AgentREF end) AS FirstOFAgentREF
from (select ClientID, ClientREF, AgentID, AgentREF,
row_number() over (partition by ClientID, ClientREF order by ?) as seqnum
from table 1 Right join
table2
ON table1 = table2 Left join
table 4
ON table1 = table4
) cc
group by ClientID, ClienREF;
不过,我认为使用正则表达式可能更容易。