相关疑难解决方法(0)

基于ID匹配从一个表到另一个表的SQL更新

我有一个带account numbers和的数据库card numbers.我将这些文件与update任何卡号匹配到帐号,以便我只使用帐号.

我创建了一个视图链接表和帐户/卡数据库以返回Table ID相关的帐号,现在我需要更新ID与帐号匹配的记录.

这是Sales_Import表,account number需要更新字段:

LeadID  AccountNumber
147         5807811235
150         5807811326
185         7006100100007267039
Run Code Online (Sandbox Code Playgroud)

这是RetrieveAccountNumber表,我需要更新:

LeadID  AccountNumber
147         7006100100007266957
150         7006100100007267039
Run Code Online (Sandbox Code Playgroud)

我试过以下,但到目前为止没有运气:

UPDATE [Sales_Lead].[dbo].[Sales_Import] 
SET    [AccountNumber] = (SELECT RetrieveAccountNumber.AccountNumber 
                          FROM   RetrieveAccountNumber 
                          WHERE  [Sales_Lead].[dbo].[Sales_Import]. LeadID = 
                                                RetrieveAccountNumber.LeadID) 
Run Code Online (Sandbox Code Playgroud)

它将卡号更新为帐号,但帐号被替换为 NULL

sql sql-server select join sql-update

885
推荐指数
18
解决办法
167万
查看次数

在Oracle上使用内部联接更新语句

我有一个在MySQL中工作正常的查询,但是当我在Oracle上运行时,我收到以下错误:

SQL错误:ORA-00933:SQL命令未正确结束
00933. 00000 - "SQL命令未正确结束"

查询是:

UPDATE table1
INNER JOIN table2 ON table1.value = table2.DESC
SET table1.value = table2.CODE
WHERE table1.UPDATETYPE='blah';
Run Code Online (Sandbox Code Playgroud)

sql oracle inner-join ora-00933

280
推荐指数
7
解决办法
70万
查看次数

Oracle SQL:使用另一个表中的数据更新表

表格1:

id    name    desc
-----------------------
1     a       abc
2     b       def
3     c       adf
Run Code Online (Sandbox Code Playgroud)

表2:

id    name    desc
-----------------------
1     x       123
2     y       345
Run Code Online (Sandbox Code Playgroud)

在oracle SQL中,如何运行可以使用表2更新表1 并使用相同的sql更新查询?所以我得到的最终结果是namedescid

表格1:

id    name    desc
-----------------------
1     x       123
2     y       345
3     c       adf
Run Code Online (Sandbox Code Playgroud)

问题来自更新一个表与来自另一个表的数据,但专门针对oracle SQL.

sql oracle sql-update

234
推荐指数
5
解决办法
90万
查看次数

更新表变量

我有一个表变量@searchResult

DECLARE @searchResult TABLE (
    [name_template] NVARCHAR(50),
    [record_id] INT,
    [record_name] NVARCHAR(50)
);
Run Code Online (Sandbox Code Playgroud)

和表[records]

CREATE TABLE [records] (
    [record_id] INT IDENTITY(1, 1) PRIMARY KEY,
    [record_name] NVARCHAR(50)
)
Run Code Online (Sandbox Code Playgroud)

@searchResult只包含[name_template]填充的记录。我想与最新的更新它[record_id],并[record_name][records]表匹配[name_template]

我试过以下 SQL 查询但没有成功:

UPDATE @searchResult
SET [record_id] = r.[record_id], [record_name] = r.[record_name]
FROM (
    SELECT TOP 1
          r.[record_id]
        , r.[record_name]
    FROM [records] AS r
    WHERE r.[record_name] LIKE [name_template]
    ORDER BY r.[record_id] DESC
) AS r;
Run Code Online (Sandbox Code Playgroud)

错误信息:

无效的列名“name_template”。

@searchResult …

sql sql-server sql-server-2008

4
推荐指数
1
解决办法
2万
查看次数