zoukankan      html  css  js  c++  java
  • SQL Server 自定义函数 返回树结构函数

    数据库结构:

    image

    表内的数据:

    image

    自定义函数: 递归查出 树下所有节点 ,参数是 父id

     create  function sss(@id as int)
      returns @t table
      (
        id int not null,
        name int not null,
        pid int null
      )
      as
      begin
      declare @lay as int;
      insert into @t 
      select * from tree where pid =@id;
      
      select @lay = min(id) from tree where pid =@id; --第一次 @lay=5
      
      while @lay is not null
      begin
      
        insert into @t 
        select * from sss(@lay);
        
        select @lay=min(id) from tree
        where id>@lay and pid=@id
      end
      return;
      end
      go
      
      
     
    .net代码:
     string cons = ConfigurationManager.ConnectionStrings["ApplicationServices"].ToString();
    
            using (SqlConnection con=new SqlConnection(cons))
            {
                if (con.State==ConnectionState.Closed)
                {
                    con.Open();
                    
                }
    
                string sql = "select * from sss(@id)";
                SqlCommand cmd = new SqlCommand(sql,con);
              
                cmd.CommandType = CommandType.Text;
               
    
                cmd.Parameters.Add(new SqlParameter("@id", DbType.Int32)).Value = 4;
                cmd.Parameters.Add("@re",DbType.String);
                cmd.Parameters["@re"].Direction = ParameterDirection.ReturnValue;
    
                SqlDataReader dr = cmd.ExecuteReader();
    
                while (dr.Read())
                {
                    int i = 0;
                    Response.Write(dr[0].ToString() + "\t\t\t" +dr[1].ToString() +"\t\t\t"+  dr[2].ToString() + "</br>");
                    i++;
                    
                }
    
    
    
    
                con.Close();

     }

    实现的效果如下:

    image

  • 相关阅读:
    Springboot中使用ibatis输出日志
    openssl生成iis需要的pfx格式的证书
    SpringBoot 默认日志
    Spring @Value 默认值
    SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成增删改查逻辑
    geomesa hbase geoserver
    在hyper-v中安装centos后配置网络
    linux命令
    SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap
    Java 获取指定包下的所有类
  • 原文地址:https://www.cnblogs.com/lgzh3/p/2749988.html
Copyright © 2011-2022 走看看