我一直收到此错误
为变量赋值的SELECT语句不能是 结合数据检索操作
当我运行此代码时:
SELECT
@i = Users,
(NAME + ' ' + Surname) AS names
FROM
dbo.HelpDeskUsers
WHERE
[names] LIKE @userid
我尝试了另一种方式......
SET
@i = (SELECT
[Users],
([Name] + ' ' + [Surname]) AS [names]
FROM
dbo.HelpDeskUsers
WHERE
Names LIKE @userid)
我收到此错误:
Msg 207,Level 16,State 1,Procedure test,Line 17
列名称无效'名称'Msg 116,Level 16,State 1,Procedure test,Line 19
子查询时,只能在选择列表中指定一个表达式 没有引入EXISTS。
答案 0 :(得分:0)
您不能在同一个Alias
查询select
子句中使用where
名称,并且您的查询中还有其他许多错误
如果没有错,你正在寻找这个
select @i=Users
from dbo.HelpDeskUsers
where Name + ' ' + Surname = @userid
这是逻辑处理查询的方式
1. FROM
2. ON
3. OUTER
4. WHERE
5. GROUP BY
6. CUBE | ROLLUP
7. HAVING
8. SELECT
9. DISTINCT
10 ORDER BY
11. TOP
正如您在SELECT
子句后面看到的WHERE
一样,您无法使用where
中生成的select
中的别名
答案 1 :(得分:0)
错误:强>
为变量赋值的SELECT语句不能与数据检索操作结合使用
SELECT @i = Users,
( NAME + ' ' + Surname ) AS names
FROM dbo.HelpDeskUsers
WHERE [names] LIKE @userid
上述声明一般说明,您试图返回数据(姓名+姓氏)并将值分配给无效的变量(用户)
答案 2 :(得分:0)
以下查询可以帮助您
;WITH [CTEUsers]
AS
(
SELECT [Users]
,[NAME] + ' ' + [Surname] AS [names]
FROM dbo.[HelpDeskUsers]
)
SELECT @i = [Users]
FROM [CTEUsers]
WHERE [names] LIKE @userid