SQL Server CE在FROM子句中嵌套SELECT

时间:2015-02-25 17:23:47

标签: sql-server razor sql-server-ce

我试图在SQL Server CE中运行以下查询,它将无法运行。另一方面,当我在SQL Server中运行它时,我成功地获得了查询。

SELECT N 
FROM
     (SELECT CONVERT(int,LN) AS N 
      FROM
          (SELECT SUBSTRING([Pt_ID],1,1) AS L, SUBSTRING([Pt_ID],2,3) AS LN
           FROM [ControlPointName]
           WHERE [Pt_ID] LIKE 'A___') CTE1) CTE2
WHERE   
    N = 456

这就是我的数据集:

Pt_ID
A453
A454
A455
A456

查询的作用是从列中提取数字,因此可以使用数字456

我得到的错误如下:

  

解析查询时出错。 [令牌行号= 2,令牌行偏移= 39,令牌错误=(]

为了使它在SQL Server CE中运行,我需要更改什么?或者做出不同的做法是什么?谢谢。

2 个答案:

答案 0 :(得分:1)

怎么样:

SELECT CAST(SUBSTRING([Pt_ID],2,3) AS int) AS N
   FROM [ControlPointName]
    WHERE [Pt_ID] LIKE 'A456%' 

答案 1 :(得分:0)

以下是有效的方法:

SELECT CONVERT(int,LN) FROM(
    SELECT  SUBSTRING([Pt_ID],1,1) AS L,
            SUBSTRING([Pt_ID],2,3) AS LN
    FROM    [ControlPointName]
    WHERE   [Pt_ID] LIKE 'A___'
) CTE
WHERE LN = 456