Sql 从oracle中符号后的表中检索特定数据

Sql 从oracle中符号后的表中检索特定数据,sql,oracle,Sql,Oracle,我只需要那些在分号后只包含3个字符的名称 Table DATA ---------------------------- Name ABC:000 DEF:0 ABD:000 FFF:00 GGG:000 说明:like是字符串的比较运算符%表示任意长度(包括长度为零)的任意字符序列:代表代码本身。下划线只代表一个字符-任何字符。比较字符串是一个%符号,一个:分号和三个下划线。如果字段存储为字符()并发生变化,则使用修剪(): 你试过什么了吗?列的数据类型是什么?我只想要那些正好有3个字

我只需要那些在分号后只包含3个字符的名称

Table DATA
----------------------------
Name   
ABC:000
DEF:0
ABD:000
FFF:00
GGG:000

说明:
like
是字符串的比较运算符
%
表示任意长度(包括长度为零)的任意字符序列<代码>:代表代码本身。下划线只代表一个字符-任何字符。比较字符串是一个
%
符号,一个
分号和三个下划线。

如果字段存储为
字符()
并发生变化,则使用
修剪()


你试过什么了吗?列的数据类型是什么?我只想要那些正好有3个字符的名称colon@user2814847-你是在建议此解决方案做其他事情吗?@user2814847:在SO中,仅用“谢谢”和“微笑”是不够的。如果你觉得它有用,你应该投票并标记为最佳答案。。。空格应该被忽略(OP的问题中没有说明)。如果确实应该忽略空格,那么在VARCHAR2情况下也需要进行类似的修剪。
with
  table_name ( name ) as (
  select 'ABC:000' from dual union all
  select 'DEF:0'   from dual union all
  select 'ABD:000' from dual union all
  select 'FFF:00'  from dual union all
  select 'GGG:000' from dual
  )
-- End of SIMULATED inputs (not part of the SQL query).
-- Solution begins BELOW THIS LINE. Use your actual table and column names.
select name
from   table_name
where  name like '%:___'
;

NAME
-------
ABC:000
ABD:000
GGG:000
where trim(name) like '%:___'