新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
这玩意sql 写 比较方便, 特别是sqlserver 2008 的递归写最方便, 使用与 父子递归 和丛属关系
10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计制作后付款的网站建设流程,更有阿拉尔免费网站建设让你可以放心的选择与我们合作。
你要的最终结果是不是=1
如果是的话,看下面的代码
数据库: SQLServer2000
表名: tbl
列名: column1,column2
create procedure pro
@value int
as
if exists
(
select * from tbl t1 join tbl t2 on t1.column1=t2.column2 where t1.column1=@value
)
begin
select @value=t2.column1 from tbl t1 join tbl t2 on t1.column1=t2.column2 where t1.column1=@value
execute pro @value
end
else
select @value
go
execute pro 5;
go
我已经试过了,结果为1.
我的QQ 11575715.
如果查询的字段是大长度的字段,那得建全文索引了。
全文索引开源的程序可以用。当然也可以用sqlserver自带的。
不过自带的好像只能给单独的表建全文索引,就是说不能多个表建一个索引。这样可能对你的取父子关系有些问题。
还是用自带的全文索引吧。操作简单些。
加多一列层级码,会简单很多比如亚洲用‘01’ 中国用‘0101’,北京用‘010101‘,海定用‘01010101’,东城用’01010102‘
这样语句可以
select id as col1,(select name from 表 where code = SubString(a.Code, 1,2)) as col2,
(select name from 表 where code = SubString(a.Code, 3,2)) as col3,
(select name from 表 where code = SubString(a.Code, 5,2)) as col4,
(select name from 表 where code = SubString(a.Code, 7,2)) as col5
from 表 a where Type = 'Distric'
不然
(select d.name from 表 b, 表 c, 表 d where a.parentid = b.id and b.parentid = c.id
and c.parentid = d.id) as col2,...
写起来比较麻烦