Postgres : 배열의 각 요소에 대한 jsonb 값 유형을 변경하는 방법은 무엇입니까?

투 샤르 가그

Postgres 10.12에는 다음과 같이 항목 이라는 jsonb 열 이 있습니다.

{
    "items": [
        {
            "itemQty": 2,
            "itemName": "snake"
        },
        {
            "itemQty": 1,
            "itemName": "x kodiyum"
        }
    ]
}

이제 모든 배열 요소에 대해 itemQty 유형을 문자열 로 변환 하여 새 값이 다음과 같이되도록합니다.

{
    "items": [
        {
            "itemQty": "2",
            "itemName": "snake"
        },
        {
            "itemQty": "1",
            "itemName": "x kodiyum"
        }
    ]
}

어떻게해야합니까? Postgres jsonb에 대한 문서를 검토했지만 알아낼 수 없었습니다.

서버 측에서는 도움이된다면 com.vladmihalcea.hibernate.type.json (Hibernate Types 52)과 함께 Spring boot 및 Hibernate를 사용하고 있습니다.

감사

GMB

배열의 중첩을 해제하고 요소를 수정 한 다음 다시 빌드 할 수 있습니다. 테이블의 기본 키가라고 가정하면 id다음과 같습니다.

select jsonb_build_object(
    'items', jsonb_agg(
        jsonb_build_object(
            'itemQty',  (x.obj ->> 'itemQty')::text,
            'itemName', x.obj ->> 'Name'
        )
    ) 
    )new_items
from mytable t
cross join lateral jsonb_array_elements(t.items -> 'items') as x(obj)
group by id

어쨌든 텍스트 값 ::text->>추출하기 때문에 명시 적 캐스트 는 여기에 실제로 필요하지 않습니다 . 의도를 더 명확하게 만들기 때문에 유지했습니다.

update진술 을 원하는 경우 :

update mytable t
set items = (
    select jsonb_build_object(
        'items', jsonb_agg(
            jsonb_build_object(
                'itemQty',  (x.obj ->> 'itemQty')::text,
                'itemName', x.obj ->> 'Name'
            )
        ) 
    )
    from jsonb_array_elements(t.items -> 'items') as x(obj)
)

DB Fiddle 데모

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

전체 테이블에 대한 jsonb 객체 배열 값을 변경하는 방법은 무엇입니까?

분류에서Dev

Laravel Eloquent : select의 각 열에 대한 값 배열을 검색하는 방법은 무엇입니까?

분류에서Dev

객체 배열 내부의 배열에서 각 값을 변경하는 방법은 무엇입니까?

분류에서Dev

Rails Postgres는 빈 객체에 대한 jsonb 열을 쿼리하는 방법은 무엇입니까?

분류에서Dev

다른 열의 각 값에 대해 한 열의 최대 값을 얻는 방법은 무엇입니까?

분류에서Dev

배열의 각 값에 대해 h1 요소를 만드는 방법은 무엇입니까?

분류에서Dev

SQL IN 문에서 문자열의 각 항목에 대한 최소값을 얻는 방법은 무엇입니까?

분류에서Dev

SQL IN 문에서 문자열의 각 항목에 대한 최소값을 얻는 방법은 무엇입니까?

분류에서Dev

배열의 각 요소에 대한 배열 값에 접두사를 추가하는 방법은 무엇입니까?

분류에서Dev

Postgres에서 동일한 열을 가진 열의 최대 값과 값을 찾는 방법은 무엇입니까?

분류에서Dev

이전 비 inf 값에 대해 numpy 배열의 inf 값을 변경하는 방법은 무엇입니까?

분류에서Dev

Highcharts의 각 값에 대한 날짜로 xAxis 레이블을 형식화하는 방법은 무엇입니까?

분류에서Dev

각 값에 대한 각 값을 얻는 방법은 무엇입니까?

분류에서Dev

모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

분류에서Dev

배열 사전에서 요소의 값을 변경하는 방법은 무엇입니까?

분류에서Dev

PostgreSQL에서 jsonb 열의 값을 쿼리하는 방법은 무엇입니까?

분류에서Dev

jsonb 열의 key []에 값을 푸시하는 방법은 무엇입니까?

분류에서Dev

MS Excel에서 다른 열의 각 고유 값에 대해 한 열의 고유 값을 계산하는 방법은 무엇입니까?

분류에서Dev

NumPy에서 배열 배열 (배열 배열)의 축 값을 변경하는 방법은 무엇입니까?

분류에서Dev

각 numpy 열의 0이 아닌 모든 요소를 크기가 열 수와 동일한 배열의 값에 할당하는 방법은 무엇입니까?

분류에서Dev

HTML 입력 요소의 값에 대한 모든 변경 사항을 포착하는 현대적인 방법은 무엇입니까?

분류에서Dev

각도 6에서 다차원 배열 값의 유효성을 검사하는 방법은 무엇입니까?

분류에서Dev

각 관측치에 대해 변수의 가장 낮은 값만 유지하는 방법은 무엇입니까?

분류에서Dev

HashMap의 각 키에 대한 값을 계산하는 방법은 무엇입니까?

분류에서Dev

Postgres에 행을 삽입 할 때 jsonb의 문자열을 연결하는 방법은 무엇입니까?

분류에서Dev

배열의 각 유형을 변환하는 방법은 무엇입니까?

분류에서Dev

한 열의 값을 비교하는 방법은 무엇입니까? SQL (Postgres)

분류에서Dev

각 효과에 대한 필터 값을 얻는 방법은 무엇입니까?

분류에서Dev

String [] 배열의 최대 / 최소 값을 얻는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    전체 테이블에 대한 jsonb 객체 배열 값을 변경하는 방법은 무엇입니까?

  2. 2

    Laravel Eloquent : select의 각 열에 대한 값 배열을 검색하는 방법은 무엇입니까?

  3. 3

    객체 배열 내부의 배열에서 각 값을 변경하는 방법은 무엇입니까?

  4. 4

    Rails Postgres는 빈 객체에 대한 jsonb 열을 쿼리하는 방법은 무엇입니까?

  5. 5

    다른 열의 각 값에 대해 한 열의 최대 값을 얻는 방법은 무엇입니까?

  6. 6

    배열의 각 값에 대해 h1 요소를 만드는 방법은 무엇입니까?

  7. 7

    SQL IN 문에서 문자열의 각 항목에 대한 최소값을 얻는 방법은 무엇입니까?

  8. 8

    SQL IN 문에서 문자열의 각 항목에 대한 최소값을 얻는 방법은 무엇입니까?

  9. 9

    배열의 각 요소에 대한 배열 값에 접두사를 추가하는 방법은 무엇입니까?

  10. 10

    Postgres에서 동일한 열을 가진 열의 최대 값과 값을 찾는 방법은 무엇입니까?

  11. 11

    이전 비 inf 값에 대해 numpy 배열의 inf 값을 변경하는 방법은 무엇입니까?

  12. 12

    Highcharts의 각 값에 대한 날짜로 xAxis 레이블을 형식화하는 방법은 무엇입니까?

  13. 13

    각 값에 대한 각 값을 얻는 방법은 무엇입니까?

  14. 14

    모달에서 행의 각 열에 대한 값을 업데이트하는 방법은 무엇입니까?

  15. 15

    배열 사전에서 요소의 값을 변경하는 방법은 무엇입니까?

  16. 16

    PostgreSQL에서 jsonb 열의 값을 쿼리하는 방법은 무엇입니까?

  17. 17

    jsonb 열의 key []에 값을 푸시하는 방법은 무엇입니까?

  18. 18

    MS Excel에서 다른 열의 각 고유 값에 대해 한 열의 고유 값을 계산하는 방법은 무엇입니까?

  19. 19

    NumPy에서 배열 배열 (배열 배열)의 축 값을 변경하는 방법은 무엇입니까?

  20. 20

    각 numpy 열의 0이 아닌 모든 요소를 크기가 열 수와 동일한 배열의 값에 할당하는 방법은 무엇입니까?

  21. 21

    HTML 입력 요소의 값에 대한 모든 변경 사항을 포착하는 현대적인 방법은 무엇입니까?

  22. 22

    각도 6에서 다차원 배열 값의 유효성을 검사하는 방법은 무엇입니까?

  23. 23

    각 관측치에 대해 변수의 가장 낮은 값만 유지하는 방법은 무엇입니까?

  24. 24

    HashMap의 각 키에 대한 값을 계산하는 방법은 무엇입니까?

  25. 25

    Postgres에 행을 삽입 할 때 jsonb의 문자열을 연결하는 방법은 무엇입니까?

  26. 26

    배열의 각 유형을 변환하는 방법은 무엇입니까?

  27. 27

    한 열의 값을 비교하는 방법은 무엇입니까? SQL (Postgres)

  28. 28

    각 효과에 대한 필터 값을 얻는 방법은 무엇입니까?

  29. 29

    String [] 배열의 최대 / 최소 값을 얻는 방법은 무엇입니까?

뜨겁다태그

보관