相关疑难解决方法(0)

参数化SQL IN子句

如何参数化包含IN具有可变数量参数的子句的查询,比如这个?

SELECT * FROM Tags 
WHERE Name IN ('ruby','rails','scruffy','rubyonrails')
ORDER BY Count DESC
Run Code Online (Sandbox Code Playgroud)

在此查询中,参数的数量可以是1到5之间的任何值.

我不希望为此(或XML)使用专用存储过程,但如果有一些特定于SQL Server 2008的优雅方式,我对此持开放态度.

sql sql-server parameters

1020
推荐指数
29
解决办法
33万
查看次数

SQL Server SELECT,其中任何列包含'x'

使用SQL Server 2008,假设我有一个名为testing80列的表,我想找到一个名为的值foo.

我可以:

SELECT * 
FROM testing 
WHERE COLNAME = 'foo'
Run Code Online (Sandbox Code Playgroud)

是否有可能我可以查询所有80列并返回foo包含在80列中任何一列中的所有结果?

提前致谢.

sql sql-server select sql-server-2008

25
推荐指数
2
解决办法
5万
查看次数

Reporting Services Cscading参数刷新

我搜索了很多,发现通常无法完成.我遇到了其中一个黑客:

http://www.bp-msbi.com/2011/04/ssrs-cascading-parameters-refresh-solved/

但它在2005年的ssrs中并不适合我.只是想知道是否有其他人在2005年尝试过它.或者是否还有其他可以尝试的黑客攻击.

根据本文,仅当第一个参数中的选择使其值无效时,依赖参数才会刷新.如果我们可以在每次参数更改时使相关参数无效,我们将强制执行完整刷新.一种简单的方法是附加一个值,例如使用NEWID()T-SQL函数获得的GUID.

所以基本上我们想在两个真实参数之间引入一个假参数.这个假参数应该每次返回新值,因为每次调用proc时,后面的storedproc都会为结果集添加一个guid.因此它强制完全刷新其他参数.

现在我面临的主要问题是:

设置此伪参数的默认值.对于可用值,伪param后面的storedproc运行并返回格式为data:result1,result2_GUIDFROMSQL的数据

现在看起来再次调用相同的storedproc来设置defult值,如果我要求它从查询中获取默认值.但是当再次运行storedproc时,会出现新的guid,因此无法找到旧值,因此无法按需设置.

我只需要找出一种机制将这个guid从引入的param传递给下一个param.

那就是我失败的地方.

我的问题可以简单地通过创建一个数据源为此查询字符串的param来复制.

select getdate() id, @name nid 
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下如何为此参数设置默认值.

reportingservices-2005 reporting-services

6
推荐指数
1
解决办法
9809
查看次数

将参数传递给 SQL Server 中的 IN 子句

可能的重复:
参数化 SQL IN 子句?
SQL Server - 带有声明变量的 In 子句

你好,

我在将参数传递给“IN”子句时遇到问题。我正在使用以下查询。

询问:

SELECT Topics.Topic_Id  FROM Topics 
    Where Topic_Description IN (''+ @Topics +'')    
Run Code Online (Sandbox Code Playgroud)

当参数具有单个值时,此查询有效。我的参数可以有逗号分隔的多个值,例如:“一”、“二”、“三”、“四”。但是只要有多个参数,查询就会失败。如何克服这个?请建议。

谢谢

我必须将上述内容用作存储过程的一部分。我必须将选择查询的结果放入如下游标中:

DECLARE cur_TopicIDs CURSOR FOR SELECT Topics.Topic_Id FROM Topics Where Topic_Description IN (''+ @Topics +'')....等

在这种情况下,我如何按照其他链接中的建议使用动态 sp

stored-procedures sql-server-2005 in-clause

5
推荐指数
1
解决办法
2万
查看次数

在transact sql中遇到IN关键字问题

我正在创建一个脚本,我使用IN关键字查询表.当我在IN子句中键入数据时,查询按我的意愿执行.但是当我创建一个包含完全相同数据的变量并使用IN子句中的变量时,它却没有.有任何想法吗???

这是有效的查询

SELECT * 
FROM scpcommandeventlog 
WHERE MESSAGEid = 3 
  AND PARAM1 IN('11416407','11416410','11416413','11416417',    
                '11416419','11416421','11416423','11416427',
                '11416432','11416433','11416434','11416435',
                '11416438','11416443','11416446','11416448',
                '11416451','11416454','11416458','11416462')
Run Code Online (Sandbox Code Playgroud)

这是没有的查询

SELECT * FROM scpcommandeventlog WHERE MESSAGEid = 3 AND PARAM1 IN(@list)
Run Code Online (Sandbox Code Playgroud)

以下是填充@list变量的查询

DECLARE @List varchar(max)

SELECT @List = isnull(@List + ',', '') + '''' + cast(itemid as varchar) + ''''
FROM dbo.ItemList
WHERE sortid LIKE @sortid
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server-2008

1
推荐指数
1
解决办法
104
查看次数