【发布时间】:2018-11-30 23:46:29
【问题描述】:
这是我第一次这样做,原因是我想避免在使用条件“if”时输入相同的 sql 脚本代码。我的第一个选择是创建一个变量并将“select”语句分配给它,现在取决于另一个变量值,我将只更改“where”条件,而不是获取我在常规 sql 脚本上获得的所有列和行,我只得到一个单元格,其中的文本分配给变量。以下是我的代码:
DECLARE @SQLScript varchar(MAX)='' ,
@Subordinate int = 1;
SELECT @SQLScript = N'SELECT * FROM Account
WHERE AccountID = 345015'
IF @Subordinate = 1
BEGIN
SELECT @SQLScript =@SQLScript +' AND Status=2 ORDER BY 1 asc'
END
ELSE
BEGIN
SELECT @SQLScript =@SQLScript +' AND Status=1 ORDER BY 2 asc'
END
SELECT @SQLScript
执行上述脚本后我得到的是 1 个单元格,显示以下文本 "SELECT * Account where AccountID = 345015 AND Status=2 group by 1 asc" 。我需要的是从该脚本中获取表格数据
【问题讨论】:
-
只是确保;你在使用 SQL Server 吗?
-
是的,我正在使用 Microsoft SQL Server Management Studio
标签: sql