在结构化表中,创建视图,合并字段自身的值
来源:互联网 发布:cmd 执行java文件 编辑:程序博客网 时间:2024/05/18 00:45
我有这样一个结构的SQL 2000的表a
cpdm cpmc
44000000 电力、热力的生产和供应
44200000 电力供应
44200100 电
44200101 工业用
46000000 水的生产和供应
46100000 自来水生产和供应
46100100 自来水
46100101 工业用
其中字段cpdm为主关键字,主关键字含义如下:头两位表示大类,3-4位表示中类,5-6位表示小类,7-8位表示具体的产品
我建立一存储过程用来查询产品的代码(cpdm),也就是说查询cpdm末尾2位数不为零的代码。比如查询工业用自来水的代码为46100101
这个存储过程查询变量为cpmc。
现在表a中存在这样一个问题:
比如我要查询工业用自来水的代码46100101,如果我在查询条件输入文本框中输入“自来水”三字,将查询不到46100101,因为我只查询cpdm尾数不为零的代码,如果输入“工业用”三字,将得到44200101和46100101,那么用户无法判断到底谁是工业用自来水,因为这两个cpdm对应的cpmc都是“工业用”三个字。这种查询是直接对表a进行的查询。
因此我想在表a基础上建立一个视图,对这个视图进行查询。这个视图只保留cpdm尾数不为零的数据,同时将小类(cpdm的后两位为零)的cpmc的值附加到产品(cpdm的末尾2位数不为零)的cpmc值前面
比如cpdm为46100101对应的cpmc的值,在这个视图中的应该为“自来水-工业用”;cpdm为44200101对应的cpmc的值,在这个视图中的应该为“电-工业用”;
解决方法一:
- select t1.cpdm,t2.cpmc+'-'+t1.cpmc as cpmc from
- (select a.cpdm,a.cpmc from a where a.cpdm%100>0) t1,
- (select a.cpdm,a.cpmc from a where a.cpdm%100=0) t2
- where left(t1.cpdm, 6) = left(t2.cpdm, 6)
解决方法二:
- create view vw_tb
- as
- select cpdm,(select cpmc from tb where cpdm=left(a.cpdm,6)+'00')+'-'+cpmc AS cpmc
- from tb a
- where right(cpdm,2)<>'00'
- go
- 在结构化表中,创建视图,合并字段自身的值
- mysql分组把分组后的某一个字段用逗号分隔在一个字段 并创建视图
- 结构体的自身引用
- 因祸得福——创建视图时改变字段的类型
- 数据库:合并型的字段值操作
- Oracle 如何合并某字段的值
- 在视图上创建ListCtrl的做法
- 创建视图 在单表上创建视图 在多表上创建视图
- oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- 转:oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- oracle 视图创建和操作,创建简单,复杂的视图,创建基表不存在的视图,视图增删改,查看视图的结构
- 视图+视图定义+创建视图+视图的表结构+创建视图的语句+查看视图哪些列是可以进行DML操作
- SharePoint 2013 在Discussion board 视图中显示非标准字段的值
- 视图中使用select a.* 更改了表a的结构 导致读取字段值时发生错位
- powerdesigner 创建物理结构视图
- smtp发信出现的问题
- c# 中的正则表达式
- Hibernate_Many-to-Many
- JS+Hibernate+vss
- 局域网中根据IP地址反查主机的名称(C#)
- 在结构化表中,创建视图,合并字段自身的值
- 自己做的年级海报
- .NET获取系统特殊文件夹路径(收藏夹,桌面)
- Event
- Excel管理的一个类
- New Features in EJB3.1(Part 1)
- JBoss野心勃勃的Web Beans
- 10个最吃香的网站开发技术
- waveOutReset 停止播放并重置管理器