首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

SQL怎么查询以下内容

2013-03-27 
SQL如何查询以下内容?现有一数据表table1,里面有两个字段“姓名,岗位”,其中内容是:HTML codetabletrtd

SQL如何查询以下内容?
现有一数据表table1,里面有两个字段“姓名,岗位”,其中内容是:

HTML code
<table><tr><td>姓名</td><td>岗位</td></tr><tr><td>王老一</td><td>大队长</td></tr><tr><td>王大一</td><td>小队长</td></tr><tr><td>王小一</td><td>组长</td></tr><tr><td>王一</td><td>队员</td></tr></table>


我想写一条SQL,作用是当姓名为“王老一”的时候,他能查找到岗位为“大队长,小队长,组长,队员”等所有的人员姓名,如果姓名是“王小一”的时候,只能查找到“组长,队员”的姓名,那我该如何编写这条SQL呢?谢谢!

[解决办法]
其实 这是需要2个表 来实现 的 第一 个表
岗位 上下级关系表

岗位名称 上级岗位名

第2个表 是你给的表 才能实现你要的查询 用递归。


[解决办法]

首先,将你的表扩充 3 个字段:

姓名,岗位,所属大队,所属小队,所属组

Set rs = cn.Execute("SELECT * FROM table1 WHERE 姓名=" & strName & "'")

Select Case rs!岗位
Case "大队长"
Set rs = cn.Execute("SELECT * FROM table1 WHERE 所属大队=" & rs!所属大队 & "'")
Case "小队长"
Set rs = cn.Execute("SELECT * FROM table1 WHERE 所属小队=" & rs!所属小队 & "'")
Case "组长"
Set rs = cn.Execute("SELECT * FROM table1 WHERE 所属组=" & rs!所属组 & "'")
End Select
[解决办法]
这种处理 我喜欢用 mssql 的function
create function [dbo].[f_get_sys_ht_type_fname](@id int)
returns varchar(8000)
as
begin
 --返回某一id的全部类型名
 declare @re varchar(8000),@pid int
 --得到编码累计
 select @pid=sys_ht_type_fid,@re=sys_ht_type_name from sys_ht_type where sys_ht_type_id=@id
 while @@rowcount>0
select @re=sys_ht_type_name+'-'+@re
,@pid=sys_ht_type_fid from sys_ht_type where sys_ht_type_id=@pid
 return(@re)
end

热点排行