首页 > 解决方案 > 根据条件从查询响应中选择一条记录 | 函数 postgres

问题描述

我是 sql/postgres 的新手,正在尝试编写一个 postgresql 查询,该查询将从数据库表中返回一条记录

我目前的查询:

select * from table 
where key = 'WITS' or substring(key, 1,1) = substring('WITS', 1, 1);

回复:

问题:我想以仅返回WITS作为响应 的方式更新此查询。即如果key匹配,则返回记录否则匹配第一个字符

我认为 postgres 函数在这方面可能会有所帮助,我可以在其中添加这个 if/else 条件。

怎么做?

样本数据: keys = WITS、WHITE、Abhis、Amanda、Blue、Delta

附在屏幕截图中的表格

在此处输入图像描述

标签: sqlpostgresql

解决方案


带有条件的 Postgres 示例:

SELECT a,
       CASE WHEN a=1 THEN 'one'
            WHEN a=2 THEN 'two'
            ELSE 'other'
       END
    FROM test;

您的情况可能类似于:

 SELECT *,
      CASE
        WHEN key = 'WITS' THEN key
        ELSE substring(key, 1,1)
      END 
    FROM table; 

推荐阅读