0

如果你有

e_id ename 
1 hansen sahul 
2 dennis richard rathore

如何找到 e_id 1 的 ename 计数为?2

如何找到 e_id 2 的 ename 计数为?3

4

1 回答 1

0

不幸的是,数据库之间的字符串操作函数不同,所以我可以给 SQL Server 方言。如果您使用的是不同的数据库,则必须找到 and 的替代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以匹配您想要的结果(名称的数量,而不是空格的数量)。

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

于 2012-07-04T06:44:13.847 回答