1樓:
update sa set cdefine = result.cdefine from sa inner join ( select sa.code, ( select top 1 b.
cdefine from dis b where b.code in ( case --查詢當前第一個逗號前得字元 when charindex(',',sa.code) <> 0 then substring(sa.
code,1,charindex(',',sa.code)-1)
--字元中沒有逗號的情況 when charindex(',',sa.code) = 0 then sa.code end ) ) as cdefine from sa ) result on result.
code =sa .code
樓主這條語句我想了好久,我的思路是:
1.將code 對應的 cdefine 組成一張表2.更新的時候通過關聯 思路1表 。
進行關聯3。由於你的code欄位是逗號隔開,那麼可能會出現一種情況是dis表中可能並未對應都是同樣的值, 如 sa 表 code 有 0001 ,0002 dis 表中 0001 對應的是 123 而 0002 對應的是321 是兩種不同的值, 我目前是取 0001 的值 123 作為更新的條件。
2樓:匿名使用者
新建一張和sa一樣的表aaa表,下面的語句可以把sa表分開來
declare
x number;
y number;
v_length number;
begin
select count(*) into y from sa表;
x := 1;
for idx in 1 .. y loop
insert into aaa表
select regexp_substr((select code, cdefine
from (select *, rownum rm from sa表)
where rm = x),
'[^,]+',
1,level)
from dual
connect by level <=
length((select code, cdefine
from (select *, rownum rm from sa表)
where rm = x)) -
length(replace((select code, cdefine
from (select code, cdefine, rownum rm
from sa表)
where rm = x),
',',
'')) + 1;
commit;
x := x + 1;
end loop;
end;
這樣你用aaa表和dis表關聯,其他的後續我想你應該能做的了,這個問題最大難點就是將一個欄位的值拆分
更新一個表的欄位值等於另一個表的欄位值的sql語句
3樓:海天盛筵
sql語句如下:
更新aseta.ty2=b.ty1fromt2a,t1bwherea.n2=b.n1
將t2表的ty2欄位的值更新為表的ty1欄位的值。假設表的n2=b表的n1。
4樓:該使用者未註冊
sql語句如下:
update a
set a.ty2=b.ty1
from t2 a,t1 b
where a.n2=b.n1
更新t2表的
ty2欄位的值為t1表的ty1欄位的值,條件是a表的n2=b表的n1
擴充套件資料:
常用sql語句——
1、說明:建立資料庫
create database database-name
2、說明:刪除資料庫
drop database dbname
3、說明:備份sql server
--- 建立 備份資料的 device
use master
exec sp_addumpdevice 'disk', 'testback', 'c:\mssql7backup\mynwind_1.dat'
--- 開始 備份
backup database pubs to testback
4、說明:建立新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根據已有的表建立新表:
a:create table tab_new like tab_old (使用舊錶建立新表)
b:create table tab_new as select col1,col2… from tab_old definition only
5、說明:刪除新表
drop table tabname
6、說明:增加一個列
alter table tabname add column col type
注:列增加後將不能刪除。db2中列加上後資料型別也不能改變,唯一能改變的是增加varchar型別的長度。
5樓:匿名使用者
直接update的話,這個應該足夠了,嘗試一下告訴我結果update mumbe t
set pass = (select ppass1 from mumbe1 where id = t.id)
where not exists (select 1 from mumbe1 where id = t.id and ppass1 = t.pass)
直接檢測 哪個id 下 pass欄位資料 不一樣 id顯示出來,我手動更新
select distinct id
from mumbe t, mumbe1 t1where t.id = t1.id
and t.pass <> t1.ppass1
6樓:強濰僑弘
這個問題好像以前沒見過的,不過可以說個思路,你先進想查詢的,就是查這兩個表通過他們的n1和n2的值是否相等的,要是有相等的,你就先將n2中的資料刪掉,將n1中資料插入進去,去試一下!不知道行不行的!
7樓:匿名使用者
sql server merge 例子
可以滿足 多種情況的處理
比如 匹配的時候,更新
源表有,目標表沒有,插入
目標表有,源表沒有,目標表該資料刪除
8樓:匿名使用者
update a set a.ty2=b.ty1 from t2 a,t1 b where a.
n2=b.n1 --保證沒有問題,不信可以先測試一下 這個問題好像以前沒見過的,不過可以說個
9樓:匿名使用者
update bobo set mumbe.pass=mumbe1.ppass1 where mumbe.pass!=mumbe1.ppass1
C中怎麼實現表的增刪改查,c 中怎麼實現表的增刪改查?
我做了一個例項,希望可以幫助你,記得采納哦。我就截圖你看吧 新增 if messagebox.show 請你核對資料 確認 messagebotuton.okcancel,messageboxicon.asterisk dialogresult.cancel return else string s...
VLOOKUP C4,價格表B 3 C 5,2,0C 5是代表什麼
是絕對引 用bai的意思。c5是列絕du對引用,複製時zhi列不變行變。下拉就dao是內c6,右拉就是c5 不是d5 c 5是行絕對引用,複製容時行不變列變。下拉就是c5 不是c6 右拉就是d5。c 5是行列絕對引用,複製時行列都不變,下拉右拉都是c5。對c5這個單元格進行絕對引用,就是前面的 是鎖...
C中屬性和欄位的區別
c 中屬性和欄位的區bai別為 訪du 問性不同 zhi 包含不同 安全性 dao不同。一 訪版問性不同 1 c 中屬性權 c 中屬性是限制只能給變數賦於某個範圍的值,是有限制的訪問私有變數。2 c 中欄位 c 中欄位是自由的 毫無限制的訪問公有變數。二 包含不同 1 c 中屬性 c 中屬性中包含兩...