【发布时间】:2013-01-15 03:16:33
【问题描述】:
我有一个像这样的简单表格结构:
表tempData
╔══════════╦═══════╗
║ NAME ║ MARKS ║
╠══════════╬═══════╣
║ Narendra ║ 80 ║
║ Ravi ║ 85 ║
║ Sanjay ║ 90 ║
╚══════════╩═══════╝
而且我还有另一个表名 tempDataView 像这样
╔══════════╦═══════╗
║ NAME ║ MARKS ║
╠══════════╬═══════╣
║ Narendra ║ ║
║ Narendra ║ ║
║ Narendra ║ ║
║ Narendra ║ ║
║ Ravi ║ ║
║ Ravi ║ ║
║ Sanjay ║ ║
╚══════════╩═══════╝
我想更新表格 tempDataView ,通过根据 tempDataView - Name 比较设置 Marks使用 tempData - 名称
是的,让我向您展示我的尝试,我尝试使用光标解决这个问题,并且完美解决,但我正在寻找使用 子查询
解决它的方法这里是:
Declare @name varchar(50),@marks varchar(50)
Declare @cursorInsert CURSOR
set @cursorInsert = CURSOR FOR
Select name,marks from tempData
OPEN @cursorInsert
FETCH NEXT FROM @cursorInsert
into @name,@marks
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE tempDataView set marks = @marks where name = @name
FETCH NEXT FROM @cursorInsert
INTO @name,@marks
END
CLOSE @cursorInsert
DEALLOCATE @cursorInsert
实际上,使用子查询解决它就像我的作业一样。
【问题讨论】:
标签: sql sql-server tsql sql-update