如何在 SET 语句 SQL Server 2008 R2 中使用通配符
How to use wildcards in SET statement SQL Server 2008 R2
我正在构建一个 SQL 报告,其中包含最终将在 SSRS 中为最终用户设置的多个变量。为了在 SQL 服务器中进行测试,我声明了几个变量,现在想使用 SET 语句来赋值。一些变量分配了特定的值,而对于其他变量,我只想使用通配符。我试过使用 %
和 '%'
,但出现语法错误。我在 SQL Server 2008 R2 中工作。
这是我的 DECLARE
和 SET
声明:
declare @start datetime
declare @end datetime
declare @Emp# varchar
declare @Posn varchar
declare @GL# varchar
declare @HrType varchar
declare @ProdCode varchar
declare @WComp varchar
set @start = '07/01/2015'
set @end = '07/31/2015'
set @Emp# = '068'
set @Posn = %
set @GL# = %
set @HrType = %
set @ProdCode = %
set @WComp = %
我是一个自学成才的新手,但我已经查看了我可以在 Whosebug 和 Google 中找到的所有信息。任何帮助将不胜感激!
如果您没有要分配的值,请不要 SET
变量的值。
如果稍后在查询中填充变量,则不需要初始值。
如果您想使用此参数捕获所有值,那么您的做法是错误的。
您可以将参数设置为 ALL。在这样的查询中使用您的参数:
SELECT * FROM TABLE
WHERE (ProdCode = @ProdCode OR @ProdCode = 'ALL')
这是一个varchar。像往常一样使用单引号:
set @Posn = '%'
然后您需要确保在比较中使用 LIKE
而不是 =
。
如果这不起作用,则您的问题出在其他地方。
我正在构建一个 SQL 报告,其中包含最终将在 SSRS 中为最终用户设置的多个变量。为了在 SQL 服务器中进行测试,我声明了几个变量,现在想使用 SET 语句来赋值。一些变量分配了特定的值,而对于其他变量,我只想使用通配符。我试过使用 %
和 '%'
,但出现语法错误。我在 SQL Server 2008 R2 中工作。
这是我的 DECLARE
和 SET
声明:
declare @start datetime
declare @end datetime
declare @Emp# varchar
declare @Posn varchar
declare @GL# varchar
declare @HrType varchar
declare @ProdCode varchar
declare @WComp varchar
set @start = '07/01/2015'
set @end = '07/31/2015'
set @Emp# = '068'
set @Posn = %
set @GL# = %
set @HrType = %
set @ProdCode = %
set @WComp = %
我是一个自学成才的新手,但我已经查看了我可以在 Whosebug 和 Google 中找到的所有信息。任何帮助将不胜感激!
如果您没有要分配的值,请不要 SET
变量的值。
如果稍后在查询中填充变量,则不需要初始值。
如果您想使用此参数捕获所有值,那么您的做法是错误的。
您可以将参数设置为 ALL。在这样的查询中使用您的参数:
SELECT * FROM TABLE
WHERE (ProdCode = @ProdCode OR @ProdCode = 'ALL')
这是一个varchar。像往常一样使用单引号:
set @Posn = '%'
然后您需要确保在比较中使用 LIKE
而不是 =
。
如果这不起作用,则您的问题出在其他地方。