Sql 拿几个';用户ID';s out-WHERE语句并放入变量
我有一个很好的查询Sql 拿几个';用户ID';s out-WHERE语句并放入变量,sql,variables,Sql,Variables,我有一个很好的查询 SELECT ui.userID, ui.lockedInd, ui.lockedBy, ui.lockedReason, ui.updatedDtTm, ui.updatedBy, ua.password, ua.updatedDtTm, ua.updatedBy FROM userInfo ui JOIN userAuthentication ua ON ui.userinfoseqid
SELECT ui.userID,
ui.lockedInd,
ui.lockedBy,
ui.lockedReason,
ui.updatedDtTm,
ui.updatedBy,
ua.password,
ua.updatedDtTm,
ua.updatedBy
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID IN (
'userOne',
'userTwo'
)
我想将用户名放入顶部声明的变量中。我对如何创建变量和添加变量有点困惑,因为我总是只使用一个值来创建变量。Sudo代码如下
DECLARE @userIDs
SET @userIDs = "'userOne', 'userTwo'"
SELECT ui.userID,
ui.lockedInd,
ui.lockedBy,
ui.lockedReason,
ui.updatedDtTm,
ui.updatedBy,
ua.password,
ua.updatedDtTm,
ua.updatedBy
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID = @userIDs
使用表变量应该适合您
DECLARE @UserIDS TABLE
(
UserId VARCHAR(40)
)
INSERT INTO @UserIDS
(
UserId
)
SELECT 'UserOne'
UNION ALL SELECT 'UserTwo'
UNION ALL SELECT 'UserThree'
SELECT ui.userID,
ui.lockedInd,
ui.lockedBy,
ui.lockedReason,
ui.updatedDtTm,
ui.updatedBy,
ua.password,
ua.updatedDtTm,
ua.updatedBy
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID IN @UserIDS
使用表变量应该适合您
DECLARE @UserIDS TABLE
(
UserId VARCHAR(40)
)
INSERT INTO @UserIDS
(
UserId
)
SELECT 'UserOne'
UNION ALL SELECT 'UserTwo'
UNION ALL SELECT 'UserThree'
SELECT ui.userID,
ui.lockedInd,
ui.lockedBy,
ui.lockedReason,
ui.updatedDtTm,
ui.updatedBy,
ua.password,
ua.updatedDtTm,
ua.updatedBy
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID IN @UserIDS
您可以使用临时表,有更多信息: 例如,创建一个表变量:
DECLARE @UserIDs TABLE (ID nvarchar(50))
INSERT INTO @UserIDs VALUES ('userOne'), ('userTwo')
SELECT ui.userID
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID IN (SELECT ID FROM @UserIDs)
您可以使用临时表,有更多信息: 例如,创建一个表变量:
DECLARE @UserIDs TABLE (ID nvarchar(50))
INSERT INTO @UserIDs VALUES ('userOne'), ('userTwo')
SELECT ui.userID
FROM userInfo ui
JOIN userAuthentication ua
ON ui.userinfoseqid = ua.userinfoseqid
WHERE ui.userID IN (SELECT ID FROM @UserIDs)
创建变量的动机是什么?它所属的.sql文件在两个select语句和一个update语句中使用了完全相同的WHERE子句。因此,如果用户ID发生更改,我必须将其更改为3个位置创建变量背后的动机是什么?作为其一部分的.sql文件在两个select语句和一个update语句中使用完全相同的WHERE子句。因此,如果用户ID发生更改,我必须将其更改为3个位置