注册 登录
编程论坛 PowerBuilder

SQL 如何操作字段

scandisk 发布于 2006-09-29 16:50, 884 次点击

想将A表中的数据导入B表,结果如下所示:

A表

姓名 姓别

张三 男
李四 男
王芳 女

B表

姓名 姓别
张三 0
李四 0
王芳 1
insert into B表(姓名,姓别)
Select 姓名, IF(姓别="男",0,1)
from A表;

6 回复
#2
scandisk2006-09-29 16:54
这样写代码可行吗
这样写代码可行吗
#3
潇洒老乌龟2006-10-01 00:46

create table #a([name] char(10) , [sex] char(2))
insert into #a(name , sex) values('张三','男')
insert into #a(name , sex) values('李四','男')
insert into #a(name , sex) values('王芳','女')

select name as 姓名 , 性别 = case when sex = '男' then '0' else '1' end from #a

drop table #a

姓名 性别
---------- ----
张三 0
李四 0
王芳 1

(所影响的行数为 3 行)


如果你要插入表B.则为:
select name as 姓名 , 性别 = case when sex = '男' then '0' else '1' end into #b from #a
select * from #b

#4
潇洒老乌龟2006-10-01 00:47
上面使用的都是临时表,你自己改为你的表即可.
#5
scandisk2006-10-01 23:25
请教版主:我的代码错在那里

i
以下代码PB提示我说ISNULL附近有错!


Insert into AccCode(cID,cAccCode,cAccName,iBalance,cType,iFrCur,iNumSettle,iDept,iPerson,iCust,cUnit)
Select iKey,
cAccCode,
cAccName,
cJD = case when cJD='借' THEN 0 ELSE 1 END,
left(LTrim(KISCODE.cAccCode),1),
cCoin = case when cCoin ISNULL THEN 0 ELSE 1 END,
cUnit = case when cUnit ISNULL THEN 0 ELSE 1 END,
cDept = case when cDept ISNULL THEN 0 ELSE 1 END,
cPerSon = case when cPerSon ISNULL THEN 0 ELSE 1 END,
cCustYw = case when cCustYw ISNULL THEN 0 ELSE 1 END,
cUnit
from KISCODE ;

#6
潇洒老乌龟2006-10-02 17:45
is null
#7
jiazishu2006-11-09 11:53
支持原创!
1