Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 在SQL Server中使用Case语句时Insert Into Select的正确语法_Sql Server 2008_Case_Insert Into - Fatal编程技术网

Sql server 2008 在SQL Server中使用Case语句时Insert Into Select的正确语法

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 <> ''

我试图从一个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 <> ''
    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表达式与大多数主流语言中的大多数表达式一样,只计算一个标量值。它不能返回元组,也不能返回整个行集