使用 SQL,我想查找字串中特定單詞的出現次數。
例如,我想計算NodeId以下字串中單詞的出現次數:
[{"NodeId":4,"NodeCondition":"1 > 2 AND 1=1"},{"NodeId":5,"NodeCondition":"56 %2 = 0"}]
uj5u.com熱心網友回復:
你有一個 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;
db<>小提琴
請注意,僅計算字串中有多少次NodeId是不夠的,因為它可能在其中一個值中,而不是在鍵中,或者它可能在鍵中但不是整個鍵名。
uj5u.com熱心網友回復:
從字串中洗掉單詞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');
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474606.html
