SSRS中, 如何将Multi Value传递到SQL的in clause中.
SSRS中, 可以创建个可多选的参数, 该参数可以作为查询项传递给SQL语句.
我遇到的问题是这样的.
1. 我创建了一个可以多选的参数.
2. 将该参数传递到了SQL的一条Select中.
3. select中是这样写的"select * from table where column in (@CoverageID)"
问题就是, SSRS上面的Report只要该值为单一的时候有效, 只要和复选,就没有用了.
比如说,有值1,2,3,4,5在列表中, 如果选择2个以上, SQL就执行不出正确的结果.
看了一下, 原来问题出在参数项上.
如果选择一个值的话@CoverageID的值就是 '1' 这样的话 查询语句为 select * from table where column in ('1') 这样结果是正确的.
如果选择二个或者2个以上的值@CoverageID的值就变成了'1,2,3,4',等多个以逗号为分隔的字符串,
查询就是select * from table where column in ('1,2,3,4') 语法是正确的, 但是肯定不是我们想要的查询结果.
真正的查询是select * from table where column in('1','2','3','4')
既然找到问题了, 解决就只是时间的问题.
这里利用一个现成的功能, 将以指定字符串, 用指定的分隔符分开, 存于一个只有一列的table变量中.
CREATE function [dbo].[f_split](@c varchar(2000),@split varchar(2))
returns @t table(col varchar(20))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end
GO
当函数创建好之后,
上面的查询可以稍改一下, 改为 select * from table where column in (select * from dbo.f_s
相关文档:
select datediff(month,'2009-11-02','2009-12-01')
不知道你要怎么个月差异
上面的命令结果也是1
但是其实按照常识差异不是一个月,是差一天一个月
这有段现成的代码可以帮助你算出常识上的差异
SQL code
declare @t table(a datetime,b datetime);
insert @t
select '2009-11-02','2009-12-01' UNION ......
背景:系统要支持多种数据库,统一insert的时候获取自动增长列的处理方式
问题1:insert select方案
sqlserver2000能够使用insertSql SELECT @@IDENTITY AS 'Identity'的方式来获得,但是mysql则只能使用executeUpdate(insertSql);
executeQuery('SELECT last_insert_id() ')这样的方式,否则会抛出异常:java.sql.SQ ......
微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引、簇集索引)和非聚集索引(nonclustered index,也称非聚类索引、非簇集索引)……
(一)深入浅出理解索引结构
实际上,您可以把索引理解为一种特殊的目录。微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称 ......
数据库设计经验谈
一个成功的管理系统,是由:[50% 的业务 + 50% 的软件] 所组成,而 50% 的成功软件又有 [25% 的数据库 + 25% 的程序] 所组成,数据库设计的好坏是一个关键。如果把企业的数据比做生命所必需的血液,那么数据库的设计就是应用中最重要的一部分。有关数据库设计的材料汗牛充栋,大学学位课程里也有 ......
一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
......