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 
  • 相关阅读:
    ie的bug及兼容性
    解决多次include后全局变量global失效的问题
    针对MYISAM表锁的解决方案(转)
    解决二进制文件冲突
    linux基本命令(1) 开关机操作
    子网掩码(NETMASK),ip地址,默认网关
    linux中常见设备对照表
    解决base64通过http传输后+变空格的问题
    mysql 查询某值是否存在于某结果集或表中
    laravel 报错 No query results for model
  • 原文地址:https://www.cnblogs.com/xiaozizi/p/5816789.html
Copyright © 2011-2022 走看看