zoukankan      html  css  js  c++  java
  • 如何将 select top 4 id from table1 赋值 给 declare @id1 int,@id2 int,@id3 int,@id4 int

    declare @id1 int,@id2 int,@id3 int,@id4 int
    declare @sickcode varchar(20),@sfrq datetime ,@count int,@str varchar(200)
    select @sickcode = sickcode,@sfrq =sfrq from tablenamewhere objid=@objid
    select @count=COUNT(*) from tablename
    where sickcode=@sickcode and YEAR (sfrq)= YEAR(@sfrq)
    
    if @count>4 
    begin
    select  @str=@str+cast(ta.[objid] as varchar(10))+',' from(
    --select ta.[objid] a from(
    select top 4 [objid] ,sfrq from tablename
    where sickcode=@sickcode  and YEAR (sfrq)= YEAR(@sfrq)
    order by abs(datediff(day,sfrq,@sfrq)) asc ) ta order by ta.sfrq
    end
    else 
    begin 
    select  @str=@str+cast(tb.[objid] as varchar(10))+',' from(
    select [objid],sfrq  from  tablename where sickcode=@sickcode and YEAR (sfrq)= YEAR(@sfrq)
     ) tb order by tb.sfrq
    end
    
    set @str=substring(@str,1,len(@str)-1)
    select  tab1.a ,IDENTITY(int,1,1) xh into #temp1
    from  cwf.dbo.fn_split(@str,',') tab1  
    
    select @id1=a from #temp1 where xh=1
    select @id2=a from #temp1 where xh=2
    select @id3=a from #temp1 where xh=3
    select @id4=a from #temp1 where xh=4

    ===========================

    拼接字符串。
    declare @str varchar(200)
    set @str=''
    select  @str=@str+cast(tb.[objid] as varchar(10))+',' from(
    select [objid],sfrq  from  tablename ) tb order by tb.sfrq
     print @str
    
    分割字符串
    create    FUNCTION    [dbo].[fn_split] ( @inputstr varchar(8000), @seprator varchar(10) ) 
    returns @temp table (a varchar(200)) 
    as 
    
    begin 
    declare @i int 
    
    set @inputstr = rtrim(ltrim(@inputstr)) 
    set @i = charindex(@seprator, @inputstr) 
    
    while @i >= 1 
    begin 
    insert @temp values(left(@inputstr, @i - 1)) 
    
    set @inputstr = substring(@inputstr, @i +1, len(@inputstr) - @i) 
    set @i = charindex(@seprator, @inputstr) 
    end 
    
    if @inputstr <> '' 
    insert @temp values(@inputstr) 
    
    return 
    end 
  • 相关阅读:
    清除文件的方法
    http协议笔记
    使用gitlab 对grafana用户做认证
    Android学习笔记(六) Activity和View基础
    Android学习笔记(五)Android框架
    Android学习笔记(四) JAVA基础知识回顾
    解决百度网盘限速问题
    Android学习笔记(三)Android开发环境的搭建
    Android学习笔记(二)Git和Github
    Android学习笔记(一)Git相关配置及使用
  • 原文地址:https://www.cnblogs.com/xiaozizi/p/5816789.html
Copyright © 2011-2022 走看看