0
Я пытаюсь перенести Foxpro DB для SQL Server .. У меня есть сазе в Foxpro, который работает, как это ..Можно ли иметь несколько операторов выбора внутри сазе в SQL
CASE *variable* = 1
SELECT * FROM TABLEA INTO CURSOR A
CASE *variable* = 2
SELECT * FROM TABLEB INTO CURSOR B
CASE *variable* = 3
SELECT * FROM TABLEC INTO CURSOR C
CASE *variable* = N
SELECT * FROM TABLEN INTO CURSOR N
Есть ли способ конвертировать этот оператор CASE в SQL без использования IF? Я предполагаю, что в SQL Server CASE можно записать только в SELECT.
Спасибо ..
Я полагаю, вы могли бы присоединиться все таблицы, такие как 'РЕГИСТРИРУЙТЕСЬ TABLEA ON вар = 1, РЕГИСТРИРУЙТЕСЬ TableB ON вар = 2' и т.д. Я бы не советовал делать это (отсюда комментарий, а не ответ), но он может дать некоторое вдохновение. – corsiKa
В t-sql 'case' не предназначен для управления потоком; скорее, он используется для возврата одного значения, вам нужно будет использовать IF - может быть уместно для foxpro, но такой подход - в частности, курсоры - редко лучший способ делать что-то на сервере SQL –
Почему вы не можете использовать 'IF'? Насколько я знаю, использовать CASE в SQL нельзя, потому что результат должен быть выражением, которое является однозначным. –