Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/32.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 2012 如何在SQL中的两个独立表上打印奇数和偶数?_Sql Server 2012_Modulus - Fatal编程技术网

Sql server 2012 如何在SQL中的两个独立表上打印奇数和偶数?

Sql server 2012 如何在SQL中的两个独立表上打印奇数和偶数?,sql-server-2012,modulus,Sql Server 2012,Modulus,在我的SQL代码中,我已经做到了这一点。我正在努力让我的数据按照奇数和偶数打印在两个单独的表格中。提前感谢您的投入。我真的很感激 DECLARE @empNM CHAR(15), @empID INT, @reportsTO INT DECLARE emp CURSOR dynamic FOR SELECT Employee_NM, Employee_ID, ReportsTo FROM employeetable ORDER BY Employee_ID AS

在我的SQL代码中,我已经做到了这一点。我正在努力让我的数据按照奇数和偶数打印在两个单独的表格中。提前感谢您的投入。我真的很感激

DECLARE
  @empNM CHAR(15),
  @empID INT,
  @reportsTO INT
DECLARE
  emp CURSOR dynamic FOR 
SELECT Employee_NM, Employee_ID, ReportsTo
    FROM employeetable
    ORDER BY Employee_ID ASC
OPEN emp
FETCH NEXT
  FROM emp
  INTO @empNM, @empID, @reportsTO;
PRINT 'name           id          boss'

WHILE (@@fetch_status <> -1)
IF (@empID % 2 = 0)
BEGIN
  SET @empNM = CONVERT(CHAR,CAST(@empNM AS VARCHAR),1)
  PRINT CAST(@empNM AS VARCHAR)+CAST(@empID AS VARCHAR)+SPACE(11)+CAST(@reportsTO AS varCHAR)


  FETCH NEXT
    FROM emp
    INTO @empNM, @empID, @reportsTO;
END;
ELSE 

BEGIN
 SET @empNM = CONVERT(CHAR,CAST(@empNM AS VARCHAR),1)
  PRINT CAST(@empNM AS VARCHAR)+CAST(@empID AS VARCHAR)+SPACE(11)+CAST(@reportsTO AS varCHAR)
  FETCH NEXT
    FROM emp
    INTO @empNM, @empID, @reportsTO;
END;
CLOSE emp;
DEALLOCATE emp;
这是期望的结果


您没有在数据中使用C循环。使用SQL,您必须处理整个数据集,因此没有游标。在大多数情况下

必须为每个表执行1次插入:

Insert Into TOdd(Name, Id, Boss) Select Name, Id, Boss From T Where id % 2 = 1
Insert Into TEven(Name, Id, Boss) Select Name, Id, Boss From T Where id % 2 = 0
请参阅SQL Fiddle:

在查询本身的后面使用。然后可以删除所有丑陋的光标/程序代码;和直接返回的一个或多个结果集。游标应该是“最后的努力”,通常是在需要立即应用结果集时,我怀疑这里的情况是否如此。