好贷网好贷款

求sql语句如何实现? 5jnet007]

发布时间:2016-12-3 12:46:42 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"求sql语句如何实现? 5jnet007]",主要涉及到求sql语句如何实现? 5jnet007]方面的内容,对于求sql语句如何实现? 5jnet007]感兴趣的同学可以参考一下。

代码,名称 1     a 2     b 11    c (代码11表示为1的下级) 我要通过一条句子,得出如下结果: 代码,名称,有无下级 1     a     有 2     b     无 11    c     无

create table # (代码 int, 名称 varchar(3)) insert # select  1   , 'a' union all select   2   , 'b'  union all select 11  , 'c'  go select * , 有无下属=case when exists(select * from # where l.代码<>代码 and charindex(rtrim(l.代码),rtrim(代码))=1) then '有' else '无' end  from # l  代码          名称   有无下属 ----------- ---- ---- 1           a    有 2           b    无 11          c    无

楼上正解

DECLARE @TB TABLE(代码 INT, 名称 VARCHAR(10)) INSERT @TB SELECT 1  ,  'a' UNION ALL SELECT 2  ,  'b' UNION ALL SELECT 11 ,  'c' UNION ALL SELECT 22  ,  'b' UNION ALL SELECT 111 ,  'D'  SELECT *, CASE WHEN EXISTS (SELECT 1 FROM @TB WHERE   LEN(T.代码)=LEN(代码)-1  AND REPLACE(代码,LEFT(T.代码,1),'')=REPLACE(T.代码,LEFT(T.代码,1),'') )THEN '有'ELSE '无'END FROM @TB T (所影响的行数为 5 行) 代码          名称               ----------- ---------- ----  1           a          有 2           b          有 11          c          有 22          b          无 111         D          无 (所影响的行数为 5 行)

DECLARE @TB TABLE(代码 INT, 名称 VARCHAR(10)) INSERT @TB SELECT 1  ,  'a' UNION ALL SELECT 2  ,  'b' UNION ALL --SELECT 11 ,  'c' UNION ALL SELECT 22  ,  'b' UNION ALL SELECT 111 ,  'D'  SELECT *, CASE WHEN EXISTS (SELECT 1 FROM @TB WHERE   LEN(T.代码)<LEN(代码) AND REPLACE(代码,LEFT(T.代码,1),'')=REPLACE(T.代码,LEFT(T.代码,1),'') )THEN '有'ELSE '无'END FROM @TB T (所影响的行数为 4 行) 代码          名称               ----------- ---------- ----  1           a          有 2           b          有 22          b          无 111         D          无 (所影响的行数为 4 行) 这样要标准点,上面如果少了那条不正确了

DECLARE @TB TABLE(代码 INT, 名称 VARCHAR(10)) INSERT @TB SELECT 1  ,  'a' UNION ALL SELECT 2  ,  'b' UNION ALL --SELECT 11 ,  'c' UNION ALL SELECT 22  ,  'b' UNION ALL SELECT 111 ,  'D'  SELECT *, CASE WHEN EXISTS (SELECT 1 FROM @TB WHERE   LEN(T.代码)<LEN(代码) AND REPLACE(代码,LEFT(T.代码,1),'')=REPLACE(T.代码,LEFT(T.代码,1),'') )THEN '有'ELSE '无'END FROM @TB T (所影响的行数为 4 行) 代码          名称               ----------- ---------- ----  1           a          有 2           b          有 22          b          无 111         D          无 (所影响的行数为 4 行)

上一篇:在report builder里面发布报表 30helloxtayfnje]
下一篇:哪有SQL Server 2000 reporting service 企业版可以下载? 20andy20050125]

相关文章

相关评论