我要实现的是将字符串附加到现有变量中,例如:
string abc = "good";
abc += "afternoon";
这样最终输出将是“下午好”
我编写了以下存储过程:
CREATE OR ALTER PROCEDURE [dbo].[sp_getPropertyContactUsDetails]
(@isDeleted CHAR(1),
@cName VARCHAR(MAX))
AS
BEGIN
SET NOCOUNT ON;
--DECLARE @mainQ varchar(max)
SELECT
pcd.col1, pcd.col2,.....
CASE
WHEN pcd.col1 = 'abc'
THEN (SELECT pname FROM tbl_pd1 WHERE id = pcd.id)
WHEN pcd.col2 = 'def'
THEN (SELECT pname FROM tbl_pd2 WHERE id = pcd.id)
END AS 'pname',
FROM
tbl_pcd pcd
WHERE
pcd.isDeleted = @isDeleted
现在,我想根据是否满足以下条件,将部分追加到查询中:
IF @cName IS NOT NULL
THEN
将以下部分添加到选择查询中:
ORDER BY ID DESC
如果@cName为NULL,则不要附加该部分!
我尝试将参数声明为:
DECLARE @mainQ VARCHAR(MAX)
然后我正在做类似的事情:
SET @mainQ = 'The select statement as specified above in the stored procedure'
T 母鸡的附加部分:
IF @cName IS NOT NULL
SET @mainQ = @mainQ + ' ORDER BY ID DESC'
END (END statement of stored procedure)
有人可以在以下情况下为我提供帮助吗,如何根据其他条件将零件追加到原始查询中?
请注意,存储过程可能包含多个if语句!
答案 0 :(得分:1)
如果您只想添加到order by子句,则可以使用-
ORDER BY
CASE WHEN @cName IS NOT NULL
THEN ID
END DESC