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)的主要内容,如果未能解决你的问题,请参考以下文章
选择子句上的 CASE 子句抛出 'SQLCODE=-811, SQLSTATE=21000' 错误
在 oracle 的另一个 case 语句中使用 case 语句的结果