Sql 如何在列值中查找空格表达式的计数?

Sql 如何在列值中查找空格表达式的计数?,sql,Sql,如果你有 e_id ename 1 hansen sahul 2 dennis richard rathore 如何找到e_id 1的ename计数为?二, 如何找到e_id 2的ename计数作为?3不幸的是,不同数据库的字符串操作函数不同,因此我可以使用SQL Server方言。如果您使用的是其他数据库,则必须找到和的替换项: 结果: e_id namecount ----------- ----------- 1 2 2 3 这

如果你有

e_id ename 
1 hansen sahul 
2 dennis richard rathore
如何找到e_id 1的ename计数为?二,


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

不幸的是,不同数据库的字符串操作函数不同,因此我可以使用SQL Server方言。如果您使用的是其他数据库,则必须找到和的替换项:

结果:

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


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

如果可能,应该首先规范化空白(如何规范化取决于您的RDBMS),这样,如果在开始或结束时有两个空格或一个空格,您就不会得到坏结果。@ctrahey-是的,可能还需要许多其他清理操作(例如,可能有其他空格字符,而不仅仅是空格)。OTOH,也许我们很幸运,OP已经有了一个良好的
检查
约束,防止此类值出现在表中。:-)此类表不遵循1NF,应该规范化。
e_id        namecount
----------- -----------
1           2
2           3