设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-30 23:25 所属栏目:128 来源:网络整理
导读:所以我有一个看起来像这样的查询: SELECT IncidentNumber,ToiletType,ToiletDangers,IncidentDateFROM Core.LostLawsuits …返回以下结果: +----------------+------------+---------------------------+---------------+| IncidentNumber | ToiletType |

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

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表?

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读