首页 > 解决方案 > 替换单元格中所需的数字

问题描述

如果学生相册包含“000”的“357”数字,我需要更换单元格。列的格式为 NUMBER。数字专辑可以是这样的:90432,90709,83570,所以这些数字可以是“里面”。对于83570我应该打印的数字80000

我试过这样:

select student.imie,
    student.nazwisko,
    case
        when student.nralbumu like '%357%' then replace(nralbumu, '%357%', '%000%')
        else student.nralbumu
    end album
from student

但它没有用。我收到如下错误:

00932. 00000 - “不一致的数据类型:预期的 %s 得到了 %s”

在此处输入图像描述

在此处输入图像描述

标签: sqloraclecaseoracle-sqldeveloper

解决方案


直接使用REPLACE,因为如果数字不包含 357,则不会发生任何事情

SELECT TO_NUMBER(REPLACE(TO_CHAR(nralbumu), '357','000'))
FROM STUDENT

或者如果您不需要将结果作为数字

SELECT REPLACE(TO_CHAR(nralbumu), '357','000')
FROM STUDENT

推荐阅读