Select Column1 From Table Where @Variable Like '%' + Column2 + '%'
似乎沒有工作,我以爲會這樣。有什麼建議麼?在參數變量上使用Like?
Select Column1 From Table Where @Variable Like '%' + Column2 + '%'
似乎沒有工作,我以爲會這樣。有什麼建議麼?在參數變量上使用Like?
(模糊的問題)
你有分類和@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 + '%'
嗯..我想我可以把變量放在一張桌子上..讓我試試。 –
如果你有列的數量有限,您可以使用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)
不幸的是'Variable'不是來自列的值,它實際上來自'param'。所以我想我會更新問題標題。你的第二個例子,不,不,不。 –
它應該工作。你認爲這會起作用嗎? – podiluska
好吧,它不會像'Where Column2 Like'%'+ @Variable +'%'' –
它不是一個交換函數。什麼是你的列,變量等? – podiluska