【问题标题】:How to make SELECT NEXT VALUE work in SQL Server?如何使 SELECT NEXT VALUE 在 SQL Server 中工作?
【发布时间】:2013-09-03 02:11:53
【问题描述】:

我在尝试使以下内容在 SQL Server 中工作时遇到了一些困难:

CREATE TABLE table_X AS
    SELECT 
        NEXT VALUE FOR GROUP_A AS GROUP_ID, RISK_ID
    FROM 
        ( SELECT UNIQUE RISK_ID, FROM table_Y ) SS;

有人告诉我:

"Incorrect syntax near the keyword 'SELECT'."
"Incorrect syntax near the keyword 'UNIQUE'."

究竟是什么问题,我该如何解决这个问题才能在SQL Server 中工作?

【问题讨论】:

  • 你想做什么? create table as 语法不是 SQL Server 语法。它使用select ... into 从查询中创建表。
  • 您能解释一下您想要达到的目标吗?
  • 我正在尝试将此语句移植到 SQL Server。我还不熟悉如何移植这样的东西,所以我很困惑。这是我的第一次移植体验,如果我看起来像个白痴,我很抱歉。

标签: sql sql-server syntax syntax-error porting


【解决方案1】:
SELECT 
    NEXT VALUE FOR GROUP_A AS GROUP_ID, SS.RISK_ID
INTO
    table_X 
FROM 
    ( SELECT DISTINCT RISK_ID FROM table_Y ) SS

【讨论】:

    【解决方案2】:

    试试这个 -

    IF OBJECT_ID ('dbo.table_X') IS NOT NULL
       DROP TABLE dbo.table_X
    
    SELECT RISK_ID --, ..... columns
    INTO dbo.table_X
    FROM ( 
        SELECT DISTINCT RISK_ID 
        FROM dbo.table_Y 
    ) SS
    
    SELECT * 
    FROM dbo.table_X
    

    【讨论】:

      【解决方案3】:
      CREATE TABLE Person
      (
      FirstName Varchar(50),
      LastName Varchar(50)
      );
      
      /*
      Insert Some Values Into Person
      */
      
      CREATE SEQUENCE CountBy
          START WITH 1
          INCREMENT BY 1 ;
      
      SELECT NEXT VALUE FOR CountBy OVER (ORDER BY LastName) AS ListNumber,
          FirstName, LastName
          INTO table_x
      FROM Person
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-10-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-04-01
        • 2011-08-12
        • 2023-03-08
        • 1970-01-01
        相关资源
        最近更新 更多