微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Oracle SQL:Select语句中嵌套REPLACE()的替代方法?

所以我有一个看起来像这样的查询

SELECT IncidentNumber,ToiletType,ToiletDangers,IncidentDate
FROM Core.LostLawsuits

…返回以下结果:

+----------------+------------+---------------------------+---------------+
| IncidentNumber | ToiletType | ToiletDangers             | Incident Date |
+----------------+------------+---------------------------+---------------+
| 2100           | A          | Spontaneous Combustion    | 2/1/2016      |
+----------------+------------+---------------------------+---------------+
| 2101           | P          | Attracts Bear Stampede    | 2/1/2016      |
+----------------+------------+---------------------------+---------------+

我想做的是获取结果,但在输出时更改ToiletType列结果.目前,我正在使用嵌套的REPLACE(),并想知道是否有更好/不同的方法,同时维护ToiletType的一列结果:

SELECT IncidentNumber,REPLACE(REPLACE(ToiletType,'A','Automatic Standard'),'P','Portable Potty') as ToiletType,IncidentDate
FROM Core.LostLawsuits

解决方法

CASE表达式适用于您的示例:

case ToiletType
   when 'A' then 'Automatic Standard'
   when 'P' then 'Portable Potty'
   end

SELECT IncidentNumber,case ToiletType
          when 'A' then 'Automatic Standard'
          when 'P' then 'Portable Potty'
       end as ToiletType,IncidentDate
FROM   Core.LostLawsuits

也许更好的是加入ToiletTypes表?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐