Я пытаюсь реализовать цикл while и условие (с вызовом функции) в case case. В основном, я пытаюсь сделать это:while и if condition in case case t-sql
begin
case
when (condition1 and condition 2 and ncolumn_num between 6 and 9)
then
while @i < 10
begin
if(hsip.Is_numeric(hsip.getTempResponseById(@cregion, @cState_code, @nFY, @nReport_id, @nsection_id, @nquestion_number, @ndisplay_number, @nquestion_number, @nquestion_part_number, @suser_id, @nrow_number, i, @suser_id)))
@nrunningtotal = @nrunningtotal + hsip.getTempResponseById(@cRegion, @cState_code, @nFY, @nReport_id, @nsection_id, @nquestion_number, @ndisplay_number, @nquestion_number,
@nquestion_part_number, @suser_id, @nrow_number, @ncolumn_number, @suser_id)
end if
end
Могу ли я реализовать цикл while и условие в выражении case. Моя бизнес-логика требует, чтобы я составил столбцы от 6 до 9 и имел итоговое итоговое значение в col: 10.
У меня есть 2 функции: gettempresponsebyid
: который возвращает строку ответа и isnumeric
функция, которая преобразует в число.
Может кто-нибудь предложить лучший способ сделать это. Я получаю эту ошибку:
INCORRECT SYNTAX NEAR IF AND INCORRECT SYNTAX NEAR RUNNINGTOTAL.
Можете ли вы предоставить ddl, входные данные и ожидаемый результат? Похоже, нам не нужно делать while while –
Это не то, что означает выражение 'CASE' *. Пожалуйста, поделитесь некоторыми примерами данных и желаемыми результатами. Похоже, вы ошибаетесь в своей проблеме (читайте: [Что такое проблема XY?] (Http://meta.stackexchange.com/a/66378)) – Siyual
Вы думаете о обработке данных, как в традиционный язык программирования - итеративно. SQL имеет другую парадигму, ее основное использование не включает итерацию. Вы можете выполнять итерацию в расширении TSQL, но это вторично для SQL. Вы получаете текущие итоги с помощью функций окна в большинстве случаев в наши дни. – ajeh