我想通过链接服务器(openquery)执行以下语句:
UPDATE SAP_PLANT
SET (OWNER, OWNER_COUNTRY) = (SELECT import.AFNAME, import.COUNTRY
FROM SAP_IMPORT_CUSTOMERS import, SAP_PLANT plant
WHERE plant.SAP_FL = import.SAP_NO
AND import.role ='OWNER')
Run Code Online (Sandbox Code Playgroud)
我试图将其形成以下语法,但没有成功:(
update openquery(‘my_linked_server, ‘select column_1, column_2 from table_schema.table_name where pk = pk_value’)
set column_1 = ‘my_value1?, column_2 = ‘my_value2?
Run Code Online (Sandbox Code Playgroud)
我希望这对你来说没有问题?
所以我是这里的第一次用户,对SQL来说还是比较新的.我试图拿两张桌子,并在某种意义上加入它们.
在表1中我有数据:
House_Key ---Other Fields--- Customer_ID
Run Code Online (Sandbox Code Playgroud)
House_Key不是唯一的,因此我每个家庭可以拥有多个Customer_ID.House_Key是数字代码,Customer_ID是Home,Business或Bulk.
在表2中,我有House_Key字段,但没有Customer_ID字段.
我的目标是拥有一个新表,其中包含Table2的字段,其中包含一个名为Customer_ID的字段,但不是像表1中那样为每种类型的Customer_ID创建一个新行,我希望每个House_Key只有一行,并且Customer_ID说"Home Business Bulk"之类的东西,如果它是全部三个或它们的任意组合,但是它们更喜欢它之前总是在商业之前拥有Home.
有没有办法做到这一点?非常感谢你提前.
此外,不确定它是否重要,但如果它,我正在使用SQL Server 2005.
使用SQL Developer在11g数据库上,我正在尝试更新记录,如下所示:
update table_test
set field_test = 0
where table_test_id = 64664;
Run Code Online (Sandbox Code Playgroud)
问题是查询花了很长时间.8分钟过去没有成功.
有没有人知道什么可能是错的?
即将关闭这个问题后面这里,有没有办法把一个方法CASE声明为SQL UPDATE,要么更新的或什么都不做。目前我有以下内容:
UPDATE CustomerAddress
SET IsPrimaryAddress = CASE WHEN c2.IsPrimaryAddress=1 THEN 1 ELSE 0 END
FROM CustomerAddress
join #AddressToDeleteMasterOfLesserId p1 on CustomerAddress.Id=p1.[Id that is master]
join CustomerAddress c2 on p1.[Id to delete]=c2.Id
Run Code Online (Sandbox Code Playgroud)
问题出现在这条线上:
SET IsPrimaryAddress = CASE WHEN c2.IsPrimaryAddress=1 THEN 1 ELSE **0** END
Run Code Online (Sandbox Code Playgroud)
当我将其设置为0时。更新应检查第一个条件,如果是,则将其设置为1,但是,如果不满足条件,则我不想设置为0,则需要保留原始值。
SET IsPrimaryAddress = CASE WHEN c2.IsPrimaryAddress=1 THEN 1 ELSE *CustomerAddress.IsPrimary* END
Run Code Online (Sandbox Code Playgroud)
但是不起作用,因为它从FROM语句中获取值,而不是当前也已设置的值。我想要的是这样的
SET IsPrimaryAddress = CASE WHEN c2.IsPrimaryAddress=1 THEN 1 ELSE *Do nothing* END
Run Code Online (Sandbox Code Playgroud)
但这仍然是一项任务,并尝试将其设置为NULL。
以上可能吗? …
所以一个难题,我有一个名为 T_GROUP 的 Oracle 表。表中的记录具有唯一 ID (ID),它们是研究的一部分,由 STUDY_ID 标识,因此多个组可以在同一个研究中。
CREATE TABLE T_GROUP
(
"ID" NUMBER(10,0),
"GROUP_NAME" VARCHAR2(255 CHAR),
"STUDY_ID" NUMBER(10,0)
)
Run Code Online (Sandbox Code Playgroud)
现有表有数百条记录,我现在添加一个名为 GROUP_INDEX 的新列:
ALTER TABLE T_GROUP ADD (
GROUP_INDEX NUMBER(10,0) DEFAULT(0)
);
Run Code Online (Sandbox Code Playgroud)
添加列后,我需要运行一个脚本来更新 GROUP_INDEX 字段:它应该从 1 开始,并为研究中的每个组增加 1 ,从最低的 ID 开始。
所以现在我有如下数据:
ID GROUP_NAME STUDY_ID GROUP_INDEX
-------------------------------------------
1 Group 1 3 0
2 Group 2 3 0
3 My Group 5 0
4 Big Group 5 0
5 Group X 5 0
6 Group Z 6 0 …Run Code Online (Sandbox Code Playgroud) 我想将图像设置为专辑的封面,我是通过在do-while循环中的无线电输入中选择它来实现的.我已经在图像表中放入了一个名为is_cover的字段,如果图像设置为封面则为1,否则为0.
<input type="radio" name="cover" value="<?php echo $row_images['image_id']; ?>" <?php if($row_images['is_cover'] == 1){ echo "checked=\"checked\""; } ?> />
Run Code Online (Sandbox Code Playgroud)
我的问题是如何执行更新查询,将所有图像is_cover字段设置为0,并且只有所选图像的值为1.
我想说的是我怎样才能做到这一点:
$is_cover = $_POST['cover'];
$query = "
UPDATE images
SET is_cover = 1
WHERE image_id = {$is_cover}
AND SET is_cover = 0
WHERE image_id <> {$is_cover}
";
Run Code Online (Sandbox Code Playgroud) 我有一个有4列的表.
Id Description Barcode Type
1 A01 L001 Loc
2 A02 L002 Loc
3 B01 L003 Loc
4 Root L004 Parent
5 Emplacement L005 Parent
6 C01 L006 Loc
7 C02 L007 Loc
Run Code Online (Sandbox Code Playgroud)
我想使用"描述"列中的值("类型"列包含"Loc")对"条形码"列进行更新.
我试过这样的事情:
UPDATE MyTable
SET Barcode=Description
WHERE Type='Loc'
Run Code Online (Sandbox Code Playgroud)
好像我弄错了.
我正在使用SQL Server作为我的数据库.现在有一个表有以下列.
PK_ID FK_ID Name Description
1 5 ABC ABCDE
2 7 EFG EFT
3 8 XUZ Xyz
4 11 TEF TEF
Run Code Online (Sandbox Code Playgroud)
现在我错误地更新了一些具有空值的Fk_ID字段.现在我想回到我的所有fk_id,它由null值更新.那么有什么方法可以恢复之前有价值的fk_id?
任何人都可以帮我找出相同的解决方案吗?
我想更新boolean列值的单个最新行True.
boolval并timestamp在表我的两列.
boolval timestamp
--------------------------------
True 1998-01-02 00:00:00.000
False 1999-01-02 00:00:00.000
False 2000-01-02 00:00:00.000
True 2001-01-02 00:00:00.000 --(Given this data, I want to update this row)
False 2006-01-02 00:00:00.000
Run Code Online (Sandbox Code Playgroud)
考虑这个伪代码我想做什么..
UPDATE tablename SET boolval='False' WHERE boolval='True' AND timestamp IS MAX;
Run Code Online (Sandbox Code Playgroud)
AND timestamp IS MAX 是不正确的语法,导致该语句无效.
我有一个问题,如果我的4中的值textbox- 房间类型,房间类型,费率,额外费用; 如果数据库中存在"房间类型",则更新,如果不存在,则插入到数据库.
public void existRoomType()
{
con.Open();
string typetable = "tblRoomType";
string existquery = "SELECT*FROM tblRoomType WHERE RoomType = '" + txtRoomType.Text + "'";
da = new SqlDataAdapter(existquery, con);
da.Fill(ds, typetable);
int counter = 0;
if (counter < ds.Tables[typetable].Rows.Count)
{
cmd.Connection = con;
string edittypequery = "UPDATE tblRoomType SET RoomType = '" + txtRoomType.Text + "', RoomRate = '" + txtRateOfRoom.Text + "', ExtraCharge = '" + txtExtraCharge.Text + "', CancelFee = '" + txtCancelFee.Text + "', …Run Code Online (Sandbox Code Playgroud) sql-update ×10
sql ×8
sql-server ×4
mysql ×2
oracle ×2
c# ×1
foreign-keys ×1
if-statement ×1
join ×1
openquery ×1
php ×1
revert ×1
sql-insert ×1