sourcecode

sql에서 값을 동적으로 변경하려고 합니다.

copyscript 2023. 8. 12. 10:36
반응형

sql에서 값을 동적으로 변경하려고 합니다.

하드코드된 필드가 한 열에 있지만 값이 다른 선택 문을 생성하려고 합니다.하드코딩된 값이 서로 다르기 때문에 다른 select 문을 작성하는 대신 이 작업을 수행하는 더 좋은 방법이 있습니까?

    select 
       ppp.category_id,
       ppp.city_id,
       <<hardcoded values>>,
       ppp.address,
       ppp.status
    from product ppp
    where ppp.owner_id = 4186

선택 목록의 식은 쿼리를 준비할 때 수정해야 합니다.쿼리를 구문 분석한 후에는 동적으로 변경할 수 없습니다.

식이 상수 값이면 모수로 주입할 수 있습니다.그런 다음 쿼리를 실행할 때 매개 변수를 준비된 문으로 전달할 수 있습니다.

select 
   ppp.category_id,
   ppp.city_id,
   ? as the_third_column,
   ppp.address,
   ppp.status
from product ppp
where ppp.owner_id = 4186

식 목록이 고정된 경우 CASE 문을 사용할 수 있으며, 이는 행별로 또는 쿼리 매개 변수별로 다를 수 있음을 의미합니다.

select 
   ppp.category_id,
   ppp.city_id,
   CASE ppp.fetch_style
    WHEN 1 THEN LOWER(ppp.mycolumn)
    WHEN 2 THEN UPPER(ppp.mycolumn)
    WHEN 3 THEN REVERSE(ppp.mycolumn)
    ELSE ppp.mycolumn
   END AS mycolumn,
   ppp.address,
   ppp.status
from product ppp
where ppp.owner_id = 4186

언급URL : https://stackoverflow.com/questions/70306624/trying-to-dynamically-change-a-value-in-sql

반응형