如果你有如何查找列值中空格表達式的計數?
e_id ename
1 hansen sahul
2 dennis richard rathore
如何找到E_ID 1的ename算不算? 2
如何找到e_id 2的ename計數爲? 3
如果你有如何查找列值中空格表達式的計數?
e_id ename
1 hansen sahul
2 dennis richard rathore
如何找到E_ID 1的ename算不算? 2
如何找到e_id 2的ename計數爲? 3
不幸的是,字符串操作函數因數據庫而異,所以我可以給SQL Server方言。如果您使用的是不同的數據庫,你必須找到替代LEN
和REPLACE
:
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
以匹配您想要的結果(名稱數量,而不是空格數量)。
(該表的設置也是方言,但只是在那裏幫助建立一個工作腳本)
如果可能的話,應該首先規範空白(如何取決於你的RDBMS),這樣如果你在開始或結束時有兩個空格或一個空格,你就不會得到不好的結果。 –
@ctrahey - 是的,許多其他清理操作也可能是必需的(例如,可能有其他空格字符而不是空格)。 OTOH,也許我們很幸運,OP已經有了一個很好的'CHECK'約束來防止這些值出現在表中。 :-) –
雅這是工作感謝 – user1500707
請解釋,, –
什麼數據庫系統? –
這樣的表格不遵循1NF,應該規範化。 – vyegorov