Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 拿几个';用户ID';s out-WHERE语句并放入变量_Sql_Variables - Fatal编程技术网

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个位置