2016-03-26 9 views
0

と併用してはいけません私はこのコードを実行すると、このエラーにA SELECT文は、データ検索operations1

A SELECT statement that assigns a value to a variable must not be combined with data-retrieval operations

を得続ける:

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) 

と私はこのエラーを取得する:

あなたはこの

select @i=Users 
from dbo.HelpDeskUsers 
where Name + ' ' + Surname = @userid 

を探している間違っていないよ場合はこれがどのようにあなたが同じselectクエリwhere句でAlias名前を使用することはできませんし、あなたがあなたのクエリ

で他の多くのミスを持っている210

Msg 207, Level 16, State 1, Procedure test, Line 17
Invalid column name 'Names'

Msg 116, Level 16, State 1, Procedure test, Line 19
Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

+0

ここであなたの目標は何ですか? 'Select'クエリの結果を表示したい場合にも' Users'値を '@ i'に代入しますか? –

+0

mysqlまたはsql-server? –

+0

はい、私は、where句で名前として2列を連結する必要もあります。SQL-Server – monasensiva

答えて

0

クエリは論理的に処理されます

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

+0

downvotingの理由:/ –

0

エラー:変数に値を代入するSELECT文はデータ検索操作と組み合わせることはできません必要があります

SELECT @i = Users, 
     (NAME + ' ' + Surname) AS names 
FROM dbo.HelpDeskUsers 
WHERE [names] LIKE @userid 

一般的に、データ(name + surname)を返し、無効な変数(ユーザー)に値を割り当てようとしています

0

次のクエリは、あなたに役立ちます

;WITH [CTEUsers] 
AS 
(
SELECT [Users] 
     ,[NAME] + ' ' + [Surname] AS [names] 
FROM dbo.[HelpDeskUsers] 
) 

SELECT @i = [Users] 
FROM [CTEUsers] 
WHERE [names] LIKE @userid