0
Select Column1 From Table Where @Variable Like '%' + Column2 + '%'

似乎不像我想象的那样工作。有什么建议么?

4

2 回答 2

6

(模糊的问题)

您是否以错误的方式获得了 Category 和 @Variable:sqlFiddle

create table the_table 
(
  category varchar(10),
  [Date] datetime,
  Amount decimal(12, 2)
)

insert into the_table
values
( 'X', '2012-1-1', 10),
( 'X', '2012-1-3', 10),
( 'Y', '2012-1-3', 20),
( 'Y', '2012-1-5', 10)

declare @Variable varchar(10)
set @Variable = 'Y'

Select * 
From the_table 
--Where @Variable Like '%' + category + '%' 
Where category Like '%' + @Variable + '%' 
于 2012-06-22T09:05:20.617 回答
1

如果您的列数有限,您可以使用case

where  case 
       when @Variable = 'col1' then col1 
       when @Variable = 'col2' then col2
       when @Variable = 'col3' then col3 
       ...
       end like '%' + Column2 + '%'

另一种选择是动态 SQL:

declare @sql nvarchar(max)
set @sql = 'Select Column1 From Table Where ' + @Variable + 
    ' Like ''%'' + Column2 + ''%'''
exec (@sql)
于 2012-06-22T08:33:16.387 回答