插入表栏位为空不更新主表此栏位,不为空就跟新主表的此栏位,SQL语句怎么写

liangjingji 2013-05-09 10:41:51
我开始是这么写的,但是r表只跟改了一个栏位,其它的栏位为空,然后把p表开始的栏位数据也跟新为空了.
UPDATE p SET p.zj=r.zj,p.jbgz=r.jbgz,p.zwjt=r.zwjt,p.gwjt=r.gwjt,p.txjt=r.txjt,p.glgz=r.glgz,p.xj=r.xj, p.jtbt=r.jtbt,p.znbt=r.znbt,p.glf=r.glf,p.gjjjs=r.gjjjs,p.yljs=r.yljs,p.ghkk=r.ghkk,p.shjt=r.shjt
FROM hs_gzzldr r LEFT JOIN hp_zd01 p ON r.zgbh=p.zgbh
WHERE __chk = 1
我现在想要的是,当r的栏位不为空时才跟新p表
...全文
58 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
liangjingji 2013-05-09
  • 打赏
  • 举报
回复
引用 1 楼 Chinajiyong 的回复:
UPDATE p SET p.zj=r.zj,...... FROM hs_gzzldr r LEFT JOIN hp_zd01 p ON r.zgbh=p.zgbh WHERE __chk = 1 and r.栏位 is not null
没用的啊.我的意思是任意一个栏位为空,它所对应的栏位就不跟新,不只一个栏位
liangjingji 2013-05-09
  • 打赏
  • 举报
回复
没用的啊.我的意思是任意一个栏位为空,它所对应的栏位就不跟新,不只一个栏位
EnForGrass 2013-05-09
  • 打赏
  • 举报
回复
UPDATE p SET p.zj=r.zj,...... FROM hs_gzzldr r LEFT JOIN hp_zd01 p ON r.zgbh=p.zgbh WHERE __chk = 1 and r.栏位 is not null
目 录 (01) SELECT .................................. ............... .......................................2 查找 SELECT "位名" FROM "格名" (02) DISTINCT................................. ............... .....................................2 不同值 SELECT DISTINCT "位名" FROM "格名" (03) WHERE...................................... ............... ....................................2 条件 SELECT "位名" FROM "格名" WHERE "条件" (04) AND OR ...................................... ............... ..................................3 条件并和或 SELECT "位名" FROM "格名" WHERE "简单条件" {[AND|OR] "简单条件"} (05) IN .............................................. ............... ..................................3 包含 SELECT "位名" FROM "格名" WHERE "位名" IN ('值一', '值二 ', ...) (06) BETWEEN.............................. ............... ........................................4 范围包含 SELECT "位名" FROM " 格名" WHERE "位名" BETWEEN '值一' AND '值二' (07) LIKE....................................... ............... .......................................4 通配符包含 SELECT "位名" FROM "格名" WHERE "位名" LIKE {套 式} -- 支持通配符‘_’ 单个字符 '%' 任意字符 (08) ORDER BY............................... ............... ......................................5 排序 SELECT "位名" FROM "格名" [WHERE "条件"] ORDER BY "位 名" [ASC, DESC] -- ASC 小到大 DESC 大到小 (09) 函数........................................ ............... ......................................5 函数 AVG (平均) COUNT (计数) MAX (最大值) MIN (最小值) SUM (总合) SELECT "函数名"("位名") FROM "格名" (10) COUNT .................................... .............. ......................................6 计 数 SELECT COUNT(store_name) FROM Store_Information WHERE store_name is not NULL -- 统计非 SELECT COUNT(DISTINCT store_name) FROM Store_Information -- 统计多 少个不同 (11) Group By .................................. .............. .....................................6 字段分组 SELECT "位 1", SUM("位 2") FROM "格名" GROUP BY " 位 1" (12) HAVING...................................... .............. ....................................7 函数条件定位 SELECT "位 1", SUM("位 2") FROM "格名" GROUP BY "位 1" HAVING (函数条件) (13) ALIAS........................................... .............. ..................................7 别名 SELECT "格别名"."位 1" "位别名" FROM "格名" "格别名" (14) 连接................................................ ..............................................8 SELECT A1.region_name REGION, SUM(A2.Sales) SALES FROM Geography A1, Store_Information A2 WHERE A1.store_name = A2.store_name GROUP BY A1.region_name (15) 外部连接........................................... ............................................9 SELECT A1.store_name, SUM(A2.Sales) SALES FROM Georgraphy A1, Store_Information A2 WHERE A1.store_name = A2.store_name (+) GROUP BY A1.store_name (16) Subquery .............................. .............. .........................................9 嵌套 SELECT "位 1" FROM "格" WHERE "位 2" [比较运算素] (SELECT "位 1" FROM "格" WHERE (17) UNION.................................... ............... ......................................10 合并不重复结果 [SQL 语句 1] UNION [SQL 语句 2] (18) UNION ALL....................................... .............. ............................ 11 合并所有结果 [SQL 语句 1] UNION ALL [SQL 语句 2] (19) INTERSECT..................................................... ............... ............. 11 查找相同值 [SQL 语句 1] INTERSECT [SQL 语句 2] (20) MINUS............................ ............... ..............................................12 显示第一个语句中不在第二个语句中的项 [SQL 语句 1] MINUS [SQL 语句 2] (21) Concatenate................................... ............... ...............................12 结果相加(串联) MySQL/Oracle: SELECT CONCAT(region_name,store_name) FROM Geography WHERE store_name = 'Boston'; SQL Server: SELECT region_name + ' ' + store_name FROM Geography WHERE store_name = 'Boston'; (22) Substring ...................................................... ............... ...............13 取字符 SUBSTR(str,pos) SUBSTR(str,pos,len) (23) TRIM ...... .............. .....................................................................14 去 SELECT TRIM(' Sample '); TRIM()首尾, RTRIM()首, LTRIM()尾 (24) Create Table ........... .............. .....................................................14 建立格 CREATE TABLE "格名"("位 1" "位 1 资料种类","位 2" "位 2 资料种类",... ) (25) Create View............................. .............. ......................................15 建立格视观 CREATE VIEW "VIEW_NAME" AS "SQL 语句" (26) Create Index........................................... ............... ......................16 建立索引 CREATE INDEX "INDEX_NAME" ON "TABLE_NAME" (COLUMN_NAME) (27) Alter Table.. .............. ..................................................................16 修改 ALTER TABLE "table_name"[改变方式] -- ADD 增加;DROP 删 除;CHANGE 更名;MODIFY 更改类型 (28) 键.......................... ..................................................................18 ALTER TABLE Customer ADD PRIMARY KEY (SID) (29) 外来键....................................... ............ ..................................18 CREATE TABLE ORDERS(Order_ID integer,Order_Date date,Customer_SID integer,Amount double,Primary Key (Order_ID),Foreign Key (Customer_SID) references CUSTOMER(SID)); (30) Drop Table................................................. ............... ...................19 删除 DROP TABLE "格名" (31) Truncate Table ................. ............... ............................................20 清除内容 TRUNCATE TABLE "格名" (32) Insert Into....................................... ............... .............................20 插入内容 INSERT INTO "格名" ("位 1", "位 2", ...) VALUES ("值 1", "值 2", ...) (33) Update ........................ ................ ................................................20 修改内容 UPDATE "格名" SET "位 1" = [值] WHERE {条件} (34) Delete ......................................... .............. .................................21 DELETE FROM "格名" WHERE {条件}
SQL语法大全 SQL语法大全 1. ASP与Access数据库连接: 2. ASP与SQL数据库连接: 建立记录集对象: set rs=server.createobject("adodb.recordset") rs.open SQL语句,conn,3,2 3. SQL常用命令使用方法: (1) 数据记录筛选: sql="select * from 数据 where 字段名=字段值 order by 字段名 [desc]" sql="select * from 数据 where 字段名 like \'%字段值%\' order by 字段名 [desc]" sql="select top 10 * from 数据 where 字段名 order by 字段名 [desc]" sql="select * from 数据 where 字段名 in (\'值1\',\'值2\',\'值3\')" sql="select * from 数据 where 字段名 between 值1 and 值2" (2) 数据记录: sql="update 数据 set 字段名=字段值 where 条件达式" sql="update 数据 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件达式" (3) 删除数据记录: sql="delete from 数据 where 条件达式" sql="delete from 数据" (将数据所有记录删除) (4) 添加数据记录: sql="insert into 数据 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" sql="insert into 目标数据 select * from 源数据" (把源数据的记录添加到目标数据) (5) 数据记录统计函数: AVG(字段名) 得出一个平均值 COUNT(*|字段名) 对数据行数的统计或对某一有值的数据行数统计 MAX(字段名) 取得一个最大的值 MIN(字段名) 取得一个最小的值 SUM(字段名) 把数据的值相加 引用以上函数的方法: sql="select sum(字段名) as 别名 from 数据 where 条件达式" set rs=conn.excute(sql) 用 rs("别名") 获取统的计值,其它函数运用同上。 (5) 数据的建立和删除: CREATE TABLE 数据名称(字段1 类型1(长度),字段2 类型2(长度) …… ) 例:CREATE TABLE tab01(name varchar(50),datetime default now()) DROP TABLE 数据名称 (永久性删除一个数据) 4. 记录集对象的方法: rs.movenext 将记录指针从当前的位置向下移一行 rs.moveprevious 将记录指针从当前的位置向上移一行 rs.movefirst 将记录指针移到数据第一行 rs.movelast 将记录指针移到数据最后一行 rs.absoluteposition=N 将记录指针移到数据第N行 rs.absolutepage=N 将记录指针移到第N页的第一行 rs.pagesize=N 设置每页为N条记录 rs.pagecount 根据 pagesize 的设置返回总页数 rs.recordcount 返回记录总数 rs.bof
第一部分:PB(PB8~PB9)(每题10分) 1. 编一个全局函数f_center(),参数aw_window 为window类型,使该窗口自动居中。 2. PB中如何存取Image或Text类型的数据,请举例说明。 3. 如何检测数据窗口是否被修改。 4. 编一个全局函数f_ IT人才网(http://it.ad0.cn) getparentwindow(),参数1 apo_parm 为PowerObject类型,参数2 aw_parent 为window类型,以参考方式传递,抓取apo_parm的父窗口(注意必须是父窗口,而非父对象www.ad0.cn)赋于aw_parent。 第二部分:SQL(MS SQL SERVER/ORACLE/SYBASE)(每题10分) 1. 名为tab_1,其中有一个字段为code,一条SELECT按code从小到大排序的前10条记录并按code从大到小排序(选所有字段) 2. 有一个t_customer,位code为Varchar(20),name为Varchar(40),Code为位,一条SQL语句删除name相同但code不同且code不是相同name对应的最大值的记录。(限一条SQL语句) 3. 在基inv_trans_detail上创建一个触发器,当插入一笔资料时库存inv_current_stock。Inv_trans_detail的交易数量位为qty_trans,运算方式位为operation_type,可取“+”、“-”、“U”三个值,如为“+”,则增加库存,如为“-”,则减少库存,如为“U”,则增加库存(根据Qty_trans的正负实际增加/减少库存)。Inv_current_stock的当前库存数量位为qty_current。两个以part_no连接起来。

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧