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

如何将 select top 4 id from table1 赋值 给 declare @id1 int,@id2 int,@id3 int,@id4 int的更多相关文章

  1. MySQL中如何实现select top n ----Limit

    Mysql中limit的用法详解 在我们使用查询语句的时候,经常要返回前几条或者中间某几行数据,这个时候怎么办呢?不用担心,mysql已经为我们提供了这样一个功能. LIMIT 子句可以被用于强制 S ...

  2. “取出数据表中第10条到第20条记录”的sql语句+select top 使用方法

    1.首先.select top使用方法: 參考问题  select top n * from和select * from的差别 select * from table --  取全部数据.返回无序集合 ...

  3. SELECT TOP 1 比不加TOP 1 慢的原因分析以及SELECT TOP 1语句执行计划预估原理

    本文出处:http://www.cnblogs.com/wy123/p/6082338.html 现实中遇到过到这么一种情况: 在某些特殊场景下:进行查询的时候,加了TOP 1比不加TOP 1要慢(而 ...

  4. Select Top在七种数据库中的使用方法(包含mysql)

    1. Oracle数据库 SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. Infomix数据库 SELECT FIRST N * FROM TABLE1 3. D ...

  5. Select Top在不同数据库中的使用

    1. oracle数据库 SELECT * FROM TABLE1 WHERE ROWNUM<=N 2. Infomix数据库 SELECT FIRST N * FROM TABLE1 3. D ...

  6. MySQL中如何实现select top n

    用惯了access mssql server的朋友,可能在用mysql查询前N条记录时,习惯的使用select top n 形式的语句,在这里说明一下,mysql没有此语法,mysql用limit来实 ...

  7. Oracle学习笔记:实现select top N的方法

    由于Oracle不支持select top N语句,所以在Oracle中需要利用order by和rownum的组合来实现select top N的查询. rownum是记录表中数据编号的一个隐藏字段 ...

  8. 【转】ibatis 中使用select top #pagesize# * from tablename

    ibatis中使用select top #num# * from tableName出现错误.由于初次用ibatis还不知道在它里边拼写SQL语句的一些规则,导致一些自认为很平常的SQL语句,在它这里 ...

  9. SQL SELECT TOP, LIMIT, ROWNUM 子句

    SQL SELECT TOP, LIMIT, ROWNUM 子句 SQL SELECT TOP 子句 SELECT TOP 子句用于规定要返回的记录的数目. SELECT TOP 子句对于拥有数千条记 ...

随机推荐

  1. word2007 每页显示表头

    word2007 每页显示表头 在Word 2007文档中,如果一张表格需要在多页中跨页显示,则设置标题行重复显示很有必要,因为这样会在每一页都明确显示表格中的每一列所代表的内容.在Word 2007 ...

  2. How Much Work Does it Take to be a Successful Mathematician?

    http://mathoverflow.net/questions/9799/how-much-work-does-it-take-to-be-a-successful-mathematician# ...

  3. javascript:history.go(-1);

    history是你浏览过的网页的url(简单的说就是网址)的集合,也就是你的浏览器里的那个历史记录.它在js里是一个内置对象,就跟document一样,它有自己的方法,go就是其中一个. 这个方法的参 ...

  4. C#不错的扩展工具类

    FSLibExtension.NET https://github.com/iccfish/FSLib.Extension WebEssentials2013 https://github.com/i ...

  5. PostgreSQL的 initdb 源代码分析之二十二

    继续分析 load_plpgsql(); 展开: 就是让postgres 执行 create extension plpgsql cmd是: "/home/pgsql/project/bin ...

  6. 学习linux必备服务器VPS

    有很多和老沙一样喜欢linux或者喜欢架设服务器的朋友,因为没有linux环境在本机弄个虚拟机说实话很卡很不方便.老沙今天给大家推荐一款国外VPS,比这国内的云服务器便宜的太多了,年付19.99美元. ...

  7. 2015南阳CCPC H - Sudoku 暴力

    H - Sudoku Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 无 Description Yi Sima was one of the best cou ...

  8. 归并排序的C语言实现

    归并排序的核心思想是 Divide-and-Conquer 算法,即将要解决的size为n的问题,分成a个size为n/b的子问题,这些子问题的结果经过O(n^d)的时间复杂度合并,即可解决最初的问题 ...

  9. 使用Jquery+EasyUI进行框架项目开发案例解说之中的一个---员工管理源代码分享

    使用Jquery+EasyUI 进行框架项目开发案例解说之中的一个 员工管理源代码分享 在開始解说之前,我们先来看一下什么是Jquery EasyUI?jQuery EasyUI是一组基于jQuery ...

  10. android150 笔记

    1. 什么是Activity? 四大组件之一,一般的,一个用户交互界面对应一个activity,界面的容器. setContentView() ,// 要显示的布局 button.setOnclick ...