我有一个表单,用户可以指定各种参数来挖掘一些数据(状态,日期等).
我可以生成一个查询:
SELECT * FROM table WHERE:
status_id = 3
date = <some date>
other_parameter = <value>
Run Code Online (Sandbox Code Playgroud)
每个WHERE都是可选的(我可以选择所有行status = 3,或所有行date = 10/10/1980,或所有行status = 3 AND date = 10/10/1980等).
给定大量参数,都是可选的,构成动态存储过程的最佳方法是什么?
我正在研究各种数据库,例如:MySQL,Oracle和SQLServer.
我有一个我想运行的SQL查询,如果我将参数标记为true,则想要在where子句中添加一些内容.我不认为我需要两次相同的sql语句,但找不到这样做的方法.这就是我要的.
DECLARE @getShipped VARCHAR = 'false';
SELECT DISTINCT
Serial_No
INTO #Serials
FROM Part_v_Container_Change2 AS CC
WHERE Change_Date <= @dateEnding
*** AND IF @getShipped = 'true' THEN CC.Container_Status = 'Shipped' ***
Run Code Online (Sandbox Code Playgroud)
尝试过if语句和case语句但似乎无法使其工作?如果我没有,我只是不想重复sql.