我有以下架构:
联系人:
ID| NAME |Contact
----------------------
1 | A |1234,4567
-----------------------
2 | B |2345,5678,9012
此处,您可以看到Contact
是Multivalued field
,而且一个人可以拥有与联系人号码一样多的数量。
现在,我想计算每个人的联系人数量。 我怎么能这样做?
注意:我不想规范化这个表。
任何帮助都会很明显。
答案 0 :(得分:0)
虽然我不建议这样做,但这就是你要做的事情:
SELECT ID, (LENGTH(Contact) - LENGTH(REPLACE(Contact,",","")) + 1) AS NumberOfContacts
FROM MyTable
输出将如下所示:
ID| NumberOfContacts
1 | 2
2 | 3
替换后长度的差异将告诉您字符串中有多少逗号,然后您需要添加1以包含最后一个数字。你应该正确地构建数据,但如果这是不可能的,那么你将需要使用这样的东西