SELECT TOP(1)后赋值给变量的有关问题

SELECT TOP(1)后赋值给变量的问题SQL codeDECLARE @assetClassNo NVARCHAR(50)SET @assetClassNo07-01-0

SELECT TOP(1)后赋值给变量的问题

SQL code
DECLARE @assetClassNo NVARCHAR(50)    SET @assetClassNo='07-01-01'DECLARE @iNum NVARCHAR(10)SELECT TOP (1) RIGHT(卡片编号,4) FROM FIXEDASSET WHERE 卡片编号 LIKE '%'+@assetClassNo+'%' AND LEN(卡片编号)=LEN(@assetClassNo)+5 ORDER BY 卡片编号 DESC

上面这段SQL语句可以正常执行
SQL code
DECLARE @assetClassNo NVARCHAR(50)    SET @assetClassNo='07-01-01'DECLARE @iNum NVARCHAR(10)SELECT @iNum=TOP (1) RIGHT(卡片编号,4) FROM FIXEDASSET WHERE 卡片编号 LIKE '%'+@assetClassNo+'%' AND LEN(卡片编号)=LEN(@assetClassNo)+5 ORDER BY 卡片编号 DESC

但是如果我想赋值给一个变量的话就会报错了,请问怎么解决
(消息 156,级别 15,状态 1,第 3 行
关键字 'TOP' 附近有语法错误。
)

[解决办法]
SQL code
--top 1 要放到前面DECLARE @assetClassNo NVARCHAR(50)    SET @assetClassNo='07-01-01'DECLARE @iNum NVARCHAR(10)SELECT TOP 1 @iNum=RIGHT(卡片编号,4) FROM FIXEDASSET WHERE 卡片编号 LIKE '%'+@assetClassNo+'%' AND LEN(卡片编号)=LEN(@assetClassNo)+5 ORDER BY 卡片编号 DESC