CREATE PROCEDURE [dbo].[GetGroupInfo]
@s_code NVARCHAR(
16) = 0 --会员卡号
AS
BEGIN
declare @p
int; --查询唯一性结果
declare @sql nvarchar(
1000); --拼接查询sql字串
set @sql='SELECT @p=n_teamlevel FROM t_user_basic WHERE s_code=' +@s_code;
exec sp_executesql @sql,N
'@p AS int OUTPUT',@p OUTPUT;
with cte( NodeID,n_user,s_code,s_introducer,n_teamlevel )
as(
SELECT
NodeID
=hierarchyID::Parse('/1/')
,n_user
,s_code
,s_introducer
,n_teamlevel
FROM t_user_basic
WHERE s_code
=@s_code
union all
SELECT
NodeID
=cast(b.NodeID.ToString() + cast(ROW_NUMBER() over (order by a.n_user) as varchar(10)) + '/' as hierarchyid)
,a.n_user
,a.s_code
,a.s_introducer
,a.n_teamlevel
FROM t_user_basic a
inner join cte b on (a.s_introducer
=b.s_code)
WHERE a.s_introducer
<>-1 and a.n_user>0 and a.n_teamlevel < @p
)
--SELECT * FROM cte WHERE n_teamlevel < @p and s_code <> @s_code and n_teamlevel <> null;
SELECT cast(NodeID
as hierarchyid).ToString(),n_user,s_code,s_introducer,n_teamlevel FROM cte
END


---execute [dbo].[GetGroupInfo] '864160951'

参考博文:http://www.cnblogs.com/Lixinhua-GoOn/archive/2016/01/29/5169297.html

http://www.genshuixue.com/i-cxy/p/15635722

更多相关文章

  1. java基础练习 01字串

随机推荐

  1. PHP中对用户密码进行加密
  2. 当将带有撇号的单词保存到数据库时,mysql_
  3. PHP的目录路径问题
  4. PHP调用内容DES加密的SOAP接口
  5. 返回key包含此字符串的值
  6. Yourphp系统发生错误
  7. 在HTTP 1.0中,状态码401的含义是什么;如果
  8. lnmp+wordpress: 您的PHP似乎没有安装运
  9. PHP通过系统命令执行Python脚本
  10. php100教程资料46~95讲分享