获取查询记录第n行 & 获取字符串包含某字符数量

1、获取查询记录第n行

【sqlserver】

select top 1 * from customer t1 

where t1.UserName not in 
(select top 1 t2.UserName from customer t2) --查询第2行数据

如下图所示:



【mysql】
select * from customer limit 1,1  

【oracle】
select * from customer t1 
where t1.UserName not in 
(select t2.UserName from customer t2 where rownum <=1) and rownum <=1;



2、获取字符串包含某字符数量

思路:“原字段”总长度 减去“查询字段” 替换为空后的长度。

select ( len(UserName) - len( replace(UserName,'0','') ) ) 零的个数

from customer;

如下图所示:


【mysql】
select ( length(UserName)-length(replace(UserName,'0',''))) 个数
from customer;

【oracle】 select NVL( ( length(UserName)-length(replace(UserName,'0',''))),length(UserName)) 个数
from customer;
【注意】:在oracle中,如果 字符串 都是该字符,则获取到的为空,而不是个数。所以需添加 NVL 判断

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值