안녕하세요


MSSQL 에서 쿼리 작업중 두가지 문제점이 있어서 질문 드리게 되었습니다. 


첫번째, 계산 수식을 텍스트로 받아 계산된 값을 리턴 받으려고 합니다. 


그래서 아래와 같은 XQuery를 사용하는 쿼리를 사용하려고 하는데


아래와 같이 x.query 에 직접적으로 수식을 넣으면 제대로 동작하는데


변수를 사용하려고 하면 값이 나오지 않고 수식이 그대로 나오네요 ㅠㅠ 


꼭 변수로 사용해야하는데 좋은 방법이 있을까요? 


[직접 수식 입력]

SELECT rs.value('.[1]', 'money')

FROM ( SELECT x.query('(89 div 2) * (3 * 600 + 510)') rs

   FROM (SELECT CONVERT(XML, '') x) a

) t


[변수 사용]

DECLARE @EXPRESSION VARCHAR(100)

SET @EXPRESSION = '(89 div 2) * (3 * 600 + 510)'


SELECT x.query('sql:variable("@EXPRESSION")') rs

   FROM (SELECT CONVERT(XML, '') x) a





두번째, 위와 같은  쿼리에서 산술식에 제곱을 포함하려고 하는데 


ex) 600+(60-(60^2-48^2)^0.5)/2 


XQuery 에는 제곱(^) 산술식을 지원하지 않는다고 하네요 


다른 좋은 방법이 있는지 알려주세요 ㅠㅠ 


고수님들 답변 달아주시면 감사하겠습니다!!