LIKE 在 CASE 语句中 Oracle SQL (Sql Developer)

Posted

技术标签:

【中文标题】LIKE 在 CASE 语句中 Oracle SQL (Sql Developer)【英文标题】:LIKE within CASE statemement OracleSQL (SqlDeveloper) 【发布时间】:2014-04-09 08:55:30 【问题描述】:

我似乎在 phone_number 和 LIKE 之间的大小写行上遇到了语法错误。 SQLdeveloper 说它期待一个 . ( 或 | 带有以下语句;

SELECT  phone_number,
    last_name,
    CASE phone_number WHEN phone_number LIKE '590%' THEN 'blagh'
                      ELSE "unknown" END "area code"

from employees;

请记住,phone_numbers 列是 char 列,而不是 number 列。 我需要使用 case 语句(用于测试)从 phone_number 部分中提取另外 5 个区号,否则其余部分被列为未知。我尝试使用 SUBSTR 函数,但这似乎也不起作用。不能在 case 语句中使用 LIKE 比较运算符吗?提前致谢

【问题讨论】:

尝试删除CASE关键字后面的phone_number。 【参考方案1】:

试试这个:

SELECT  phone_number,
last_name,
CASE WHEN TO_CHAR(phone_number) LIKE '590%' THEN 'blagh'
                  ELSE "unknown" END "area code"

from employees;

【讨论】:

编辑:没有意识到您也更改了 CASE 语句。现在工作。非常感谢您的帮助!

以上是关于LIKE 在 CASE 语句中 Oracle SQL (Sql Developer)的主要内容,如果未能解决你的问题,请参考以下文章

select 中 like 变量 该怎么写?

选择子句上的 CASE 子句抛出 'SQ​​LCODE=-811, SQLSTATE=21000' 错误

在 oracle 的另一个 case 语句中使用 case 语句的结果

oracle过程中查询语句where条件中带变量怎么实现?

ORACLE模糊查询语句 当条件为 like %(% 或者like %)%时 结果为全查吗

sql 语句 获取最大值