Sql server 2008 在SQL Server中使用Case语句时Insert Into Select的正确语法
我试图从一个select插入一个临时表,其中有一个case语句定义从哪个表插入,但语法不正确 我想做如下工作:-Sql server 2008 在SQL Server中使用Case语句时Insert Into Select的正确语法,sql-server-2008,case,insert-into,Sql Server 2008,Case,Insert Into,我试图从一个select插入一个临时表,其中有一个case语句定义从哪个表插入,但语法不正确 我想做如下工作:- DECLARE @TempTable TABLE(ID int IDENTITY, Charges varchar(270)); INSERT INTO @TempTable SELECT ( CASE @inItemType WHEN 1 THEN SELECT ID, Charges FROM TicketType WHERE Charges <> ''
DECLARE @TempTable TABLE(ID int IDENTITY, Charges varchar(270));
INSERT INTO @TempTable SELECT (
CASE @inItemType
WHEN 1 THEN SELECT ID, Charges FROM TicketType WHERE Charges <> ''
WHEN 10 THEN SELECT ID, Charges FROM SeatType WHERE Charges <> ''
END
);
有人知道这是可能的还是可以提出更好的方法吗?我只想:
DECLARE @TempTable TABLE(ID int IDENTITY, Charges varchar(270));
INSERT INTO @TempTable
SELECT ID, Charges FROM TicketType WHERE Charges <> '' and @inItemType=1
UNION ALL
SELECT ID, Charges FROM SeatType WHERE Charges <> '' and @inItemType=10;
CASE表达式与大多数主流语言中的大多数表达式一样,只计算一个标量值。它不能返回元组,也不能返回整个行集