-1
私はfeeds
テーブルを持っていて、それを好きな人のjson配列カラム(UserLike
)です。私はフィードのリストを取得したいと正確に彼が言っていた場合(UserID
を比較し、または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"}]
:のようなテーブルになりますユーザーは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句:ユーザーID = 2
こんにちは@ gofr1:まず、あなたの答えをありがとうございました。 第二に、私は明らかにテーブル構造を書いていないよ、ごめんなさい。これは次のようなものでなければなりません
'FeedID FeedName UserLike 1 Feed 1 [{" UserID ":1、" UserName ":" User 1 "}、{" UserID ":2、" UserName ":" User 2 " ...] 2フィード2 [{"ユーザーID":1、 "ユーザー名": "ユーザー1"}、{"ユーザーID":2、 "ユーザー名": "ユーザー2"}、...] 3フィード3 [{"" UserID ":1、" UserName ":" User 1 "}]'
– user3238543
コメントを読むのが難しい質問を編集してください。 – gofr1
こんにちは@ gofr1:まず、あなたの答えをどうもありがとう。 第二に、私は明らかにテーブル構造を書いていないよ、ごめんなさい。それは私のポストで修正されました。 私は 'CROSS APPLY OPENJSON(UserLike)'を使ってみました。しかし、それは、 'UserLike 'のログインユーザの' UserID'のないレコードは表示されません。そして、返されたリストは、私が望むものではない。私はフィードのリストを取得したい、と私はそれが好きかどうかの情報。クロスアプリケーションを適用した後にWHERE文を追加するopenjsonはいくつかのレコードを見逃してしまいます。何かアドバイスがありますか、間違っていますか?どうもありがとうございました !! 申し訳ありませんが、私の最初の投稿はスタックにあります:)。 – user3238543