我要实现的是将字符串附加到现有变量中,例如:
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-else条件将一个部分附加到查询中,如下所示:
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附加部分的hen:
IF @cName IS NOT NULL
SET @mainQ = @mainQ + ' ORDER BY ID DESC'
END (END statement of stored procedure)
有人能帮我解决以下情况吗?如何根据if-else条件将零件附加到原始查询中??
请注意,存储过程可能包含多个if语句!
如果你只想通过子句添加到订单中,那么你可以使用类似于-的东西
ORDER BY
CASE WHEN @cName IS NOT NULL
THEN ID
END DESC