我试图在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中运行,我需要更改什么?或者做出不同的做法是什么?谢谢。
答案 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