如何在列值中找到空白空间表达式的计数?

时间:2012-07-04 06:38:15

标签: sql

如果你有

e_id ename 
1 hansen sahul 
2 dennis richard rathore

如何查找e_id 1的ename计数? 2

如何查找e_id 2的ename计数? 3

1 个答案:

答案 0 :(得分:0)

不幸的是,字符串操作函数因数据库而异,所以我可以给出SQL Server方言。如果您使用的是其他数据库,则必须找到LENREPLACE的替代品:

declare @Names table (e_id int,ename varchar(3000))
insert into @Names (e_id, ename) values
(1,'hansen sahul'),
(2,'dennis richard rathore')

select e_id,LEN(ename) - LEN(REPLACE(ename,' ','')) + 1 as namecount
from @Names

结果:

e_id        namecount
----------- -----------
1           2
2           3

这可以计算普通字符串和已删除空格的相同字符串之间的长度差异。这在逻辑上等同于字符串中的空格数。然后我们添加1以匹配您想要的结果(名称数量,而不是空格数量)。

(表格设置也是方言,但只是为了帮助创建一个工作脚本)