遇到一个很痛苦的问题!

aiker666 2010-06-29 05:23:56
别的公司给我们单位开发一个系统,需要让我们自己根据数据库查询到结果后生成一个DAT文件。他们的要求是这样


比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
rq date //取不出此字段
qx char(10)

要求我们如果类型为char的字段取不出的话就用空格代替,数值型字段取不出的话就用0代替,date取不出的话就用19000101代替。 上面不能取的字段我已经标明了,请问各位大侠SQL到底怎么写才能变成上述我说的要求呢?
...全文
69 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yangxiao_jiang 2010-06-30
  • 打赏
  • 举报
回复
你的意思是,告诉你的
比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
rq date //取不出此字段
qx char(10)
这个表中,但是money,rq这两个字段是不存在的?让你往 数据库中到的时候,加 上默认值?
如果是的话

select name,job,0,csd,'19000101','',qx from tt
这样应该就可以了 。
aiker666 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 acmain_chm 的回复:]
你自己的说法前后都不一致!提问时能严谨一些吗?到底是哪些字段表中没有?


#11楼但是其中的 csd,rq字段我们单位取不到,外包公司让我们如果字段取不到的话可采用如下方式解决
即char型取不到的话就以空格替代,date型取不到的话就以1019999替代,decimal型取不到的话就以
0替代,我们取出这些数据后生成一个.dat格式文件给他们。数据库是DB2

#7楼比如说有这样……
[/Quote]
提问经验不足,不好意思。不知道如何表达!
ACMAIN_CHM 2010-06-30
  • 打赏
  • 举报
回复
你自己的说法前后都不一致!提问时能严谨一些吗?到底是哪些字段表中没有?

[Quote= #11楼]但是其中的 csd,rq字段我们单位取不到,外包公司让我们如果字段取不到的话可采用如下方式解决
即char型取不到的话就以空格替代,date型取不到的话就以1019999替代,decimal型取不到的话就以
0替代,我们取出这些数据后生成一个.dat格式文件给他们。数据库是DB2[/Quote]
[Quote= #7楼]比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
temp char(10) //此字段取不出
rq date //取不出此字段
qx char(10)[/Quote]

先以上面这个为准。SQL语句如下。
select name,job,0 as money,csd,'' as temp,'1019999' as rq,qx from table1
aiker666 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 acmain_chm 的回复:]
引用详细说明

比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
temp char(10) //此字段取不出
rq date //取不出此字段
qx char(10)


你的表结构到底是什么?表中没有你指定的字段?


(不要高估你的汉语表达能力或者我的汉语……
[/Quote]


是这样的,外包公司要求我提供如下这个表

name char(10)
job char(10)
money decimal(10,2)
csd char(10)
temp char(10)
rq date
qx char(10)
但是其中的 csd,rq字段我们单位取不到,外包公司让我们如果字段取不到的话可采用如下方式解决
即char型取不到的话就以空格替代,date型取不到的话就以1019999替代,decimal型取不到的话就以
0替代,我们取出这些数据后生成一个.dat格式文件给他们。数据库是DB2
ACMAIN_CHM 2010-06-30
  • 打赏
  • 举报
回复
[Quote]详细说明

比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
temp char(10) //此字段取不出
rq date //取不出此字段
qx char(10)
[/Quote]

你的表结构到底是什么?表中没有你指定的字段?


(不要高估你的汉语表达能力或者我的汉语理解能力)
建议你列出你的表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://topic.csdn.net/u/20091130/20/8343ee6a-417c-4c2d-9415-fa46604a00cf.html

1. 你的 create table xxx .. 语句
2. 你的 insert into xxx ... 语句
3. 结果是什么样,(并给以简单的算法描述)
4. 你用的数据库名称和版本(经常有人在MS SQL server版问 MySQL)

这样想帮你的人可以直接搭建和你相同的环境,并在给出方案前进行测试,避免文字描述理解上的误差。

aiker666 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wwwwb 的回复:]
用什么数据库?
这个要用SP来完成,取得所有表中的字段名及类型,在SP中判断类型,根据需要做处理,再动态执行
[/Quote]
我用的是db2数据库!能不能提供一个示例呢?
wwwwb 2010-06-30
  • 打赏
  • 举报
回复
用什么数据库?
这个要用SP来完成,取得所有表中的字段名及类型,在SP中判断类型,根据需要做处理,再动态执行
aiker666 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 wwwwb 的回复:]
引用 5 楼 aiker666 的回复:
引用 4 楼 dut703 的回复:
引用 1 楼 wwwwa 的回复:

select name,job,0,csd,'19000101',qx from tt

这样就可以的

如果我有一个CHAR字段取不出用空格替代语句如何写呢?

详细说明
[/Quote]
比如说有这样一张表
name char(10)
job char(10)
money decimal(10,2) //取不出此字段
csd char(10)
temp char(10) //此字段取不出
rq date //取不出此字段
qx char(10)

要求我们如果类型为char的字段取不出的话就用空格代替,数值型字段取不出的话就用0代替,date取不出的话就用19000101代替。 上面不能取的字段我已经标明了,请问各位大侠SQL到底怎么写才能变成上述我说的要求呢?

上述的temp字段也取不出,需要在结构中以空格替代,那么这个语句怎么写呢?
wwwwb 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 aiker666 的回复:]
引用 4 楼 dut703 的回复:
引用 1 楼 wwwwa 的回复:

select name,job,0,csd,'19000101',qx from tt

这样就可以的

如果我有一个CHAR字段取不出用空格替代语句如何写呢?
[/Quote]
详细说明
aiker666 2010-06-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dut703 的回复:]
引用 1 楼 wwwwa 的回复:

select name,job,0,csd,'19000101',qx from tt

这样就可以的
[/Quote]
如果我有一个CHAR字段取不出用空格替代语句如何写呢?
dut703 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wwwwa 的回复:]

select name,job,0,csd,'19000101',qx from tt
[/Quote]
这样就可以的
aiker666 2010-06-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 acmain_chm 的回复:]
你的取不出是什么意思?取出为NULL?还是无符合条件的记录?
[/Quote]
是我们单位的表里面压根没有这个字段的意思
ACMAIN_CHM 2010-06-29
  • 打赏
  • 举报
回复
你的取不出是什么意思?取出为NULL?还是无符合条件的记录?
WWWWA 2010-06-29
  • 打赏
  • 举报
回复
select name,job,0,csd,'19000101',qx from tt

5,889

社区成员

发帖
与我相关
我的任务
社区描述
IBM DB2 是美国IBM公司开发的一套关系型数据库管理系统,它主要的运行环境为UNIX(包括IBM自家的AIX)、Linux、IBM i(旧称OS/400)、z/OS,以及Windows服务器版本
社区管理员
  • DB2
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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