使用postgres 8.4,我的目标是更新现有表:
CREATE TABLE public.dummy
(
address_id SERIAL,
addr1 character(40),
addr2 character(40),
city character(25),
state character(2),
zip character(5),
customer boolean,
supplier boolean,
partner boolean
)
WITH (
OIDS=FALSE
);
Run Code Online (Sandbox Code Playgroud)
最初我使用insert语句测试了我的查询:
insert into address customer,supplier,partner
SELECT
case when cust.addr1 is not null then TRUE else FALSE end customer,
case when suppl.addr1 is not null then TRUE else FALSE end supplier,
case when partn.addr1 is not null then TRUE else FALSE end partner
from (
SELECT *
from address) pa
left outer …Run Code Online (Sandbox Code Playgroud) 表格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.
我有两张桌子,看起来都像
id name value
===================
1 Joe 22
2 Derk 30
Run Code Online (Sandbox Code Playgroud)
我需要的值复制value从tableA到tableB基于每个表检查名称.
这个UPDATE陈述的任何提示?
我有一个非常基本的UPDATE SQL-
UPDATE HOLD_TABLE Q SET Q.TITLE = 'TEST' WHERE Q.ID = 101;
Run Code Online (Sandbox Code Playgroud)
该查询中运行良好Oracle,Derby,MySQL-但它在SQL Server 2008中失败
与以下错误:
"Msg 102,Level 15,State 1,Line 1'Q'附近的语法不正确."
如果我从SQL中删除所有出现的别名"Q",那么它可以正常工作.
但我需要使用别名.
我有两个表,并希望更新LEFT JOIN中所有行的T1字段.
举一个简单的例子,更新以下结果集的所有行:
SELECT T1.* FROM T1 LEFT JOIN T2 ON T1.id = T2.id WHERE T2.id IS NULL
Run Code Online (Sandbox Code Playgroud)
在MySQL手册指出:
多表UPDATE语句可以使用SELECT语句中允许的任何类型的连接,例如LEFT JOIN.
但是我在文档化的多表UPDATE中找不到正确的语法.
什么是正确的语法?
UPDATE dbo.TestStudents
SET LASTNAME =
( CASE
WHEN (LASTNAME = 'AAA') THEN 'BBB'
WHEN (LASTNAME = 'CCC') THEN 'DDD'
WHEN (LASTNAME = 'EEE') THEN 'FFF'
ELSE (LASTNAME)
END )
Run Code Online (Sandbox Code Playgroud)
该语句适用于此目的,但else条件扫描表中的每条记录.有什么方法可以保留未受影响的行吗?
我有一个PL/SQL函数(在Oracle 10g上运行),我在其中更新了一些行.有没有办法找出UPDATE影响了多少行?当手动执行查询时,它会告诉我有多少行受到影响,我想在PL/SQL中获取该数字.
有没有办法在SQL服务器中更新多个列,就像使用insert语句一样?
就像是:
Update table1 set (a,b,c,d,e,f,g,h,i,j,k)=
(t2.a,t2.b,t2.c,t2.d,t2.e,t2.f,t2.g,t2.h,t2.i,t2.j,t2.k)
from table2 t2
where table1.id=table2.id
Run Code Online (Sandbox Code Playgroud)
或类似的东西,而不是像这样:
update table set a=t2.a,b=t2.b etc
Run Code Online (Sandbox Code Playgroud)
如果你有100多列,写起来可能很烦人.
如何只更改mysql表的一个单元格中的数据.我有UPDATE的问题,因为它使列中的所有参数都发生了变化,但我只想更改一个.怎么样?
我使用的是mysql,需要使用null值更新列.我尝试了很多不同的方法,我得到的最好的是一个空字符串.
有没有特殊的语法来做到这一点?
sql-update ×10
sql ×6
mysql ×4
sql-server ×3
oracle ×2
alias ×1
plsql ×1
postgresql ×1
subquery ×1
t-sql ×1