繁体   English   中英

匹配Sql表中两列的值并将其保存到另一列

[英]Matching the Values of Two Column in Sql Table and save it into another column

我正在制作一个工具,该工具从表的列中选择UCPost值并将其与同一表的UCPre匹配,然后将其与所有其他详细信息一起插入到其他表中。

表:

  **UCID   UCName     Author        UCPre                          UCPost**
    UC01   Login      Bilal Haider  User must be Registerd         User is Loggined sucessfully
    UC02   Add User   Bilal Haider  User is Loggined sucessfully   User is added
    UC03   Add file   Bilal Haider  User is Loggined sucessfully   File added
    UC04   Delete file Bilal Haider File is selected              File is deleted

从该表中,我选择UCId UCPre UCPost并插入到另一个表中Name Test

**UCId  UCPre                           UCPost                          UCNext**
UC01    User must be Registerd          User is Loggined sucessfully    NULL
UC02    User is Loggined sucessfully    User is added                   NULL
UC03    File must be selected           File is added                   NULL
UC04    File is selected                File is deleted                 NULL
UC05    User is Loggined sucessfully    User is deleted                 NULL

我想用该用例的UCId填充测试表的UCNext列,其中UCPre与所选用例的UCPost相匹配。

像UC01一样,UCPost是我执行查询时成功登录的用户,它与所有用例的UCPre与UC01的UCPost匹配,并且UC02和UC03具有相同的UCPre,因此UCNext必须填充UC02,UC03,但它给出了错误。

问题:当我尝试执行以下语句时

更新测试集UCNext =(从UCDetails中选择UCId,其中test.UCPost = UCPre)

它给出以下错误

Msg 512, Level 16, State 1, Line 1
Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
The statement has been terminated.

请告诉我如何解决这个问题。

test.UCPost =User is Loggined sucessfully从测试表test.UCPost =User is Loggined sucessfullyUCDetailsUCDetails行,这就是您收到该错误的原因。 试试这个

UPDATE A
SET    a.UCNext = b.UCId
FROM   test a
       JOIN UCDetails b
         ON A.UCPost = b.UCPre 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM