日期:2014-05-18 浏览次数:20492 次
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(代码) 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 行)