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