oracle中怎么判断查询的列中是不是包含字母?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中怎么判断查询的列中是不是包含字母?相关的知识,希望对你有一定的参考价值。

select
case
when
regexp_like(字段名,'.([a-z]+|[A-Z])')
then
'包含字母'
else
'不包含字母'
end
from
表名字
正则表达式函数:regexp_like
关键的参数是第二个:'.([a-z]+|[A-Z])'其中.表示匹配任何单字符,换行符除外
[a-z]是小写字母|或[A-Z]大写字母。
编程注意事项:
1、程序不仅需要给计算机读
,
也要给程序员读。
程序设计风格的原则
,
代码应该清楚的和简单的
,
具有直截了当的逻辑
,
自然的表达式
,
通行的语言使用方式
,
有意义的名字和帮助作用和注释。
2、自定义类型名以大写字母开头,各单词之间以大写字母分隔,如
CallType
(即骆驼式命
名法)

变量名以小写字母开头,
各单词之间以大写字母
分隔
(变量活动范围前缀以下划线
分隔)
,如
m_pReleaseIn。函数名以大写字母开头,各单词之间以大写字母分隔(进程、进
程页及子函数前缀以下划
线分隔)
,如
Sub_ErrorDealing。
3、命名宏定义时,表示最大个数时定义为
XXX_MAX_NUM(如最大子节点个数可用
SNODE_MAX_NUM表示)
,表示最大取值时定义为
XXX_MAX(如
PT

E1的最大取值
可用
PT_E1_MAX表示)
。定义最小个数时定义为
XXX_MIN_NUM,定义最小取值时定义

XXX_MIN。
(以防止下标使用时难以分辨是否需要减
1)
参考技术A 看看下边的语句可不可以
select
case
when
regexp_like(字段名,'.([a-z]+|[a-z])')
then
'包含字母'
else
'不包含字母'
end
from
表名字
正则表达式函数:regexp_like
关键的参数是第二个:'.([a-z]+|[a-z])'其中.表示匹配任何单字符,换行符除外
[a-z]是小写字母|或[a-z]大写字母

oracle如何快速判断表中的某列是不是有空值

假设表有100万行,需要判断某列中是否有空值,如果用SELECT COUNT(1) FROM XXX WHERE YYY IS NOT NULL ,效率低了点,有没有快速一点的方法

yyy上面有索引的话非常快的。



或者还有另外一种方法,你可以试一下。



alter table xxx modify yyy not null ;


dexter@REPO>alter table ts modify id not null ;
alter table ts modify id not null
*
第 1 行出现错误:
ORA-02296: 无法启用 (DEXTER.) - 找到空值


如果有空值就会报错。

参考技术A SELECT COUNT(1) FROM XXX WHERE YYY IS NULL;

首先 YYYY 是nullable这样做才有意义, 如果是NULLABLE 那么最快的是 建一个索引

create index ind1 on XXX(YYY,1);

如下面的例子:

SQL> set timing on;
SQL>
SQL> select count(1) from tvol where owner is null;

COUNT(1)
----------
0

Elapsed: 00:00:02.89
SQL>
SQL> create index ind1 on tvol(owner,1);

Index created.

Elapsed: 00:00:20.73
SQL> select count(1) from tvol where owner is null;

COUNT(1)
----------
0

Elapsed: 00:00:00.00本回答被提问者和网友采纳

以上是关于oracle中怎么判断查询的列中是不是包含字母?的主要内容,如果未能解决你的问题,请参考以下文章

oracle如何快速判断表中的某列是不是有空值

php里怎么判断字段里是不是以1开头的字段?

mysql 判断字符串中是不是有汉字

excel如何判断某一列内容是不是包含在另一列中

oracle查询将不同的列填充到一列中

oracle 如何查找特定字母开头的某个字段?