-1
我有一個feeds
表和json數組列(UserLike
)的人誰喜歡它。表將是這樣的:json_value中的SQL Server 2016篩選器
FeedID FeedName UserLike
1 Feed 1 [{"UserID":1,"UserName":"User 1"},{"UserID":2,"UserName":"User 2"},...]
2 Feed 2 [{"UserID":1,"UserName":"User 1"},{"UserID":2,"UserName":"User 2"},...]
3 Feed 3 [{"UserID":1,"UserName":"User 1"}]
我想獲取提要列表,酷似通過比較UserID
(如果他喜歡,或者不回UserLike空用戶登錄的信息,我想進行即使登錄用戶不在UserLike
列表中)。
我該怎麼辦?請問T-SQL支持一些事情,如:
select
FeedID, FeedName,
Json_value(UserLike, '$[UserID=1].UserName')...
結果,我很期待是:
FeedID FeedName UserID UserName
1 Feed 1 2 User 2
2 Feed 2 2 User 2
3 Feed 3 NULL NULL
與WHERE子句:用戶名= 2
hi @ gofr1:首先,非常感謝您的回答。第二,對不起,我沒有寫清楚表格結構。它必須是這樣
'FeedID FeedName UserLike 1 Feed 1 [{「UserID」:1,「UserName」:「User 1」},{「UserID」:2,「UserName」:「User 2」}, ...] 2 Feed 2 [{「UserID」:1,「UserName」:「User 1」},{「UserID」:2,「UserName」:「User 2」},...] 3 Feed 3 [{「UserID」:1,「UserName」:「User 1」}]'
– user3238543
請編輯您的問題,此代碼難以閱讀評論。 – gofr1
hi @ gofr1:首先,非常感謝你的回答。第二,對不起,我沒有寫清楚表格結構。它在我的帖子中已經修復。 所以,我嘗試使用'CROSS APPLY OPENJSON(UserLike)'。但事實是,UserLike中沒有登錄用戶的UserID的記錄不會顯示。而且返回的列表並不是我想要的。我想要得到提要列表,以及如果我喜歡或不喜歡的信息。交叉應用openjson後添加WHERE語句會讓我錯過一些記錄。你有任何建議,或者我做錯了嗎?非常感謝你 !! 對不起,我第一次發帖堆棧:)。 – user3238543