ステートメントを使用しCASE
て一時テーブルの作成を支援していますが、何らかの理由でオペランド型の衝突エラーが発生しています。
CREATE TABLE #users
(
id INT IDENTITY (1, 1),
userid UNIQUEIDENTIFIER,
username VARCHAR(50),
sysrole VARCHAR(50)
)
--Insert all loadtest users into temp table
INSERT INTO #users
(userid,
username,
sysrole)
SELECT id,
username,
sysrole =
CASE
WHEN id between 0 and 100 THEN '63F7971B-45FF-4E3C-86E7-9D0507AF60C0'
WHEN id between 101 and 200 THEN '26478736-7937-4E52-891B-E80A8D609693'
WHEN id between 201 and 300 THEN 'CEF5F44F-0961-414C-8578-22BEB0C4B9FF'
WHEN id between 301 and 400 THEN '63F7971B-45FF-4E3C-86E7-9D0507AF60C0'
WHEN id between 401 and 500 THEN '7FD13C9E-731B-43AE-95F0-E9AEDC65759C'
END
FROM user
WHERE username LIKE '%Test%'
500 人のユーザーがいるため、CASE はこれらすべての可能性を処理します。ただし、オペランド型の衝突は読み取り中です (INSERT INTO が始まる行で) uniqueidentifier is incompatible with tinyint
。
中にIDENTITY
列が自動入力されていませんINSERT
か?
user
編集:テーブルがどのように見えるかを知ることが役立つことに気付きました。約12の列がありますが、そこから引き出したいものは次のとおりです。
id
文字列である主キー
username
です(ユーザーの一意の識別子)
sysrole
ご覧のとおり、によって定義されてCASE
います。