2012-06-19 100 views
1

我有一組動態條件在​​where子句中使用。Sybase使用參數作爲where子句中的條款

我試圖將它們添加到WHERE子句中的存儲過程中作爲完整子句的參數但未收到結果。

這可能嗎?

Parameter @sql_statement = 'date in ('2011-01-01','2012-01-01','2012-05-24') AND doc = '1'' 

#where statement 
WHERE emp='x' AND @sql_statement 
+1

參數不能是SQL的一部分,他們的數據項,並且將永遠是數據項。您需要使用該參數來構建新的SQL命令並執行新命令*(動態SQL)*。 – MatBailie

+0

您使用的是哪個版本的Sybase? –

回答

1

如前所述Dems,它看起來像你想使用dynamic SQL

您可以試試:

declare @where_clause varchar(100) 
declare @sql_statement varchar(500) 
select @where_clause = 'date in (''2011-01-01'',''2012-01-01'',''2012-05-24'') AND doc = ''1''' 
select @sql_statement = 'select * from my_table where ' + @where_clause 
exec (@sql_statement)