1

在 sql server 中,我在表中有一个列,我想在另一个表 [新表] 中创建两列中的列。你能帮助我吗。

------------------------
  Type
  ------------------------
  UserDefine

  UserDefine

  AutoGenerate

  AutoGenerate

  UserDefine
 -------------------------

以上是我的一个表中的列,现在我想在两个表中创建列,如 UserDefine 和 Autogenerate 列在不同的表中

  -----------------------------------
   UserDefine        | AutoGener      |
  ------------------------------------|
  UserDefine         |   AutoGenerate | 
                     |                |
  UserDefine         |   AutoGenerate |
 ---------------------------------------

像上面一样,帮我谢谢。

4

2 回答 2

0

我会使用两个插入,一个用于“UserDefine”值,另一个用于“AutoGenerate”

INSERT INTO NewTable (UserDefine) SELECT Type FROM OldTable WHERE Type = "UserDefine"

INSERT INTO NewTable (UserDefine) SELECT Type FROM OldTable WHERE Type = "AutoGenerate"

将 where 子句更改为适当的条件以区分这两种类型。

于 2012-11-22T07:31:41.373 回答
0

尝试这个:

;WITH CTE
AS
(
  SELECT *, ROW_NUMBER() OVER(PARTITION BY [Type] ORDER BY [Type]) rownum
  FROM Table1
)
SELECT 
  MAX(CASE WHEN [Type] = 'AutoGenerate' THEN [Type] END) AS 'AutoGenerate',
  MAX(CASE WHEN [Type] = 'UserDefine' THEN [Type] END) AS 'UserDefine'
FROM CTE
WHERE Rownum <= 2
GROUP BY Rownum;

SQL 小提琴演示

于 2012-11-22T07:38:37.000 回答