视图和投射到文本

Views and casting to text

我创建了一个包含 4 列的视图。看起来像这样

status         |     name        |       faculty     |    starting
Garbage value  |  James Donald   |   XYZ             |    2001-01-01  
"                 Ross Harley        ABC                  2013-04-04     

它有更多的价值,但这无关紧要。 我需要用文本 "Longest serving" 或 "Shortest serving" 替换状态中的垃圾值,但似乎无法做到这一点。

答案应该类似于

status | name | faculty | starting Longest Serving | James Donald | XYZ | 2001-01-01 Shortest Serving | Ross Harley | ABC | 2013-04-04

我创建视图 q3 的初始查询是:

create or replace view q3 (status, name, faculty, starting) as
select max(q.starting) as status, q.name, q.faculty, q.starting
from q2 q
where (starting in (select min(starting) from q2))
   or (starting in (select Max(starting) from q2))
group by q.name, q.faculty, q.starting;

max(q.starting) 因为统计数据是垃圾。

The 2 views involved
它所做的基本上是根据起始列找出谁服务时间最长和最短。 (视图 q2 中的数据)并将状态替换为服务时间最长或服务时间最短。

如果你能理解问题并知道解决方案,那将对我有很大帮助。谢谢

对您的查询进行以下调整应该有效:

create or replace view q3 (status, name, faculty, starting) as
select 
  CASE
    WHEN starting in (select min(starting) from q2 THEN 'longest serving'
    ELSE 'shortest serving'
  END 
  AS status,
  q.name, q.faculty, q.starting
from q2 q
where (starting in (select min(starting) from q2))
   or (starting in (select Max(starting) from q2))
group by q.name, q.faculty, q.starting;