我的查询仅在参数等于1时才应更新列。这是示例:
<cfquery name="updateQry" datasource="test">
UPDATE Table1
SET fname = form.fname,
lname = form.lname,
<cfif form.status eq 1>
title = form.title,
</cfif>
last_update_dt = getDate()
WHERE rec_id = form.record_id
</cfquery>
我想将此SQL查询移至存储过程。如何仅使用SQL代码才能达到相同的过程?而不是<cfif form.status eq 1> title = @title,</cfif>
如何用SQL代码代替它?我使用Sybase数据库和ColdFusion2016。上面的代码应移至存储过程。
我认为您想要一个case
表达,像这样:
UPDATE Table1
SET fname = form.fname,
lname = form.lname,
title = (case when form.status = 1 then form.title else table1.title end),
last_update_dt = getDate()
WHERE rec_id = form.record_id;
在存储过程中,您可能会使用参数:
UPDATE Table1
SET fname = @fname,
lname = @lname,
title = (case when @status = 1 then @title else table1.title end),
last_update_dt = getDate()
WHERE rec_id = #record_id;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句