0
我试图到FoxPro数据库迁移到SQL Server。我在FoxPro中的CASE语句,其工作原理是这样..是否有可能有一个CASE语句中多个SELECT语句在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中写入。
谢谢。
我想你可以加入像'JOIN表A基于VAR = 1,表B JOIN基于VAR = 2'等所有表我不会建议这样做(因此是评论而不是答案),但它可能会提供一些启发。 – corsiKa
在t-sql'case'不适用于流程控制;相反,它用于返回一个单一的值,你将不得不使用IF - 它可能适用于foxpro,但这种方法 - 特别是游标 - 很少是SQL服务器中最好的方法。 –
为什么你不能使用'IF'?就我所知,无法在SQL中使用CASE,因为结果必须是一个“表达式”,它是一个单值。 –