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
有A,B兩個表,它們有個欄位C是相同的,查詢A表按照B表中的C欄位總數排序的ASP SQL語句怎麼寫呢
select from a a inner jion b b on a.c select count b.c from b b group by b.c order by a.c desc 我理解的意思是這樣的。 如果 在b表中的總數 是指產品類別在b表出現的次數,則 select a.產品類別,c...
用SQL怎樣根據表種的欄位ID查出另表中的資料
我看的是你看我 例如 兩個表中的news type id 跟 type id是對應的,根據news 表中的 news type id 1 查出 news type 表中的 type name 根據 news表中的 news type id 1 查出 news type表中的 透明點評 這條資料,透明...
視力表 C字表 0 5等於多少度
現在視力有問題的人越來越多,年齡也越來越小,因而保護視力,做好日常的眼睛保健是很重要的。人擁有好的視力,不僅看東西清楚,還不會影響學習和工作。日常常用的保護眼睛的方法有 一 近距離用眼時間不宜過長,每隔40 50分鐘就應該稍微休息3一5分鐘,向遠處眺望一會減緩視力疲勞。二 讀書寫字,玩電腦,保持正確...