Kar*_*ski 3 sql t-sql sql-server stored-procedures sql-server-2008-r2
例如我有这个存储过程
Create Procedure sampleProcedure
AS
BEGIN
Select EmpID, Name, Address, PhoneNumber From EmpTable
END
Run Code Online (Sandbox Code Playgroud)
现在,在我的应用程序中,我将如何执行此操作:例如,用户检查了 checkBox1,则上面的查询将为ORDER BY EmpIDelse,如果检查了 checkBox2,则查询将为ORDER BY Name。我必须创建两个过程吗?
Create Procedure sampleProcedure1
AS
BEGIN
Select EmpID, Name, Address, PhoneNumber From EmpTable Order By EmpID
END
Create Procedure sampleProcedure2
AS
BEGIN
Select EmpID, Name, Address, PhoneNumber From EmpTable Order By Name
END
Run Code Online (Sandbox Code Playgroud)
如果选中checkbox1,则将执行sampleProcedure1,否则如果选中checkbox2,则将执行sampleProcedure2?
为过程引入一个参数来指示排序顺序:
Create Procedure sampleProcedure1
@orderByEmpId bit
AS
BEGIN
if (@orderByEmpId = 1)
Select EmpID, Name, Address, PhoneNumber From EmpTable Order By EmpID
else
Select EmpID, Name, Address, PhoneNumber From EmpTable Order By Name
END
Run Code Online (Sandbox Code Playgroud)
您可以进一步细化为:
CREATE PROCEDURE sampleProcedure1
@orderByEmpId Bit
AS BEGIN
SELECT
EmpID, Name, Address, PhoneNumber
FROM EmpTable
ORDER BY CASE WHEN @orderByEmpId = 1 THEN EmpID ELSE Name END
END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5001 次 |
| 最近记录: |