繁体   English   中英

选择在单个值中包含混合字符的行,例如名称列中的“ Joh?n”

[英]Select rows that has mixed charcters in a single value e.g. 'Joh?n' in name column

在oracle表中:

1-VARCHAR列中的值包含不是字母的字符。

考虑一个方案,其中“ last_name”列中的名称包含常规字符(A-Z,a-z)以及非英语字母的字符(例如“。”,“-”,“,” _, >”或类似)。

面临的挑战是选择名称在“ last_name”中作为“ .John”或“ John”的行。 或'-John'或'Joh-n'

2-是否可以在“日期定义的”列中包含非日期值? 如果是,如何在oracle查询中选择此类记录?

谢谢!

我相信这可以解决问题:

SELECT * FROM mytable WHERE REGEXP_LIKE(last_name, '[^A-Za-z]');

至于第二个问题,我不确定。 如果有人可以补充我要回答的第二个问题,我将感到非常高兴。 我发现该网站认为可能会有帮助。 http://infolab.stanford.edu/~ullman/fcdb/oracle/or-time.html解释了DATE格式。

如果我正确理解了您的目标,则需要选择last_name列中包含名称“ John”的行,但是该名称之前,之后甚至内部可能还会有其他字符。 在这种情况下,这将有所帮助:

select * from tab where regexp_replace(last_name, '[^A-Za-z]+', '') = 'John'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM