总结摘要
sqlserver使用简单的存储过程,根据in条件来进行排序
前提需求: 公司有一个数据库每个月自动生成一张表,表名是动态变化的格式类似xxx202007
,现在每天查询当天的数据,即找到对应的表的里对应日期的数据,并根据in
里的数据顺序来排序。使用简单的存储过程来解决。
declare
来声明变量, @
符号来定义变量名, set
来设置变量值。
convert
函数可以将其他格式转为字符串格式。 charindex
用法百度吧。
单引号的转义直接在单引号前再加一个单引号,下边的charindex
转义前为:charindex(','+convert(varchar,COUNTER序号)+',0,1,4,6,265,241,2,')
1
2
3
4
5
| use History;
declare @tableName varchar(25), @day int
set @tableName = 'dbo.Counter' + convert(char(6), getdate(), 112)
set @day = datename(day, getdate())
exec('select COUNTER名称,日,cast(round(实时值00_00, 2) as numeric(15,2)) as "00:00" from ' + @tableName + ' where 日=' + @day +' and COUNTER序号 in (0,1,4,6,265,241,2) order by charindex('','' + convert(varchar,COUNTER序号) + '','','',0,1,4,6,265,241,2,'')');
|