计算 SQL 中字符串中特殊单词的出现次数
Count occurrences of a special word in a string in SQL
使用SQL,我想找出特定单词在字符串中出现的次数。
例如,我想计算单词 NodeId
在以下字符串中出现的次数:
[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]
从字符串中删除单词 NodeId
,然后将其与结果字符串进行比较。
试试这个代码:
DECLARE @string NVARCHAR(MAX) = '[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]';
DECLARE @stringLEN INT = LEN(@string);
DECLARE @tmpString INT = (SELECT LEN(REPLACE(@string, 'NodeId', '')));
SELECT (@stringLEN - @tmpString) / LEN('NodeId');
您有一个 JSON 字符串。最准确的方法是撕碎 JSON 并计算你有多少个 NodeId
键。
DECLARE @String nvarchar(max) = '[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]';
SELECT COUNT(*)
FROM OPENJSON(@String)
WITH (NodeId int)
WHERE NodeId IS NOT NULL;
请注意,仅计算字符串中有多少次 NodeId
是不够的,因为它可能在其中一个值中,而不是在键中,或者它可能在键中但不是整个键名。
使用SQL,我想找出特定单词在字符串中出现的次数。
例如,我想计算单词 NodeId
在以下字符串中出现的次数:
[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]
从字符串中删除单词 NodeId
,然后将其与结果字符串进行比较。
试试这个代码:
DECLARE @string NVARCHAR(MAX) = '[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]';
DECLARE @stringLEN INT = LEN(@string);
DECLARE @tmpString INT = (SELECT LEN(REPLACE(@string, 'NodeId', '')));
SELECT (@stringLEN - @tmpString) / LEN('NodeId');
您有一个 JSON 字符串。最准确的方法是撕碎 JSON 并计算你有多少个 NodeId
键。
DECLARE @String nvarchar(max) = '[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]';
SELECT COUNT(*)
FROM OPENJSON(@String)
WITH (NodeId int)
WHERE NodeId IS NOT NULL;
请注意,仅计算字符串中有多少次 NodeId
是不够的,因为它可能在其中一个值中,而不是在键中,或者它可能在键中但不是整个键名。