Sql 根据声明的值运行两个不同的SELECT查询之一
例如,如何基于参数运行两个不同的SELECT查询之一Sql 根据声明的值运行两个不同的SELECT查询之一,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,例如,如何基于参数运行两个不同的SELECT查询之一 if (x=1) then SELECT Product_Name, Pro_ID FROM Store else SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3) 您可以在以下内容中使用: IF (@x = 1) BEGIN SELECT Product_Name, Pro_ID FROM Store END ELSE BEGIN SELECT [Pr
if (x=1)
then
SELECT Product_Name, Pro_ID FROM Store
else
SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3)
您可以在以下内容中使用:
IF (@x = 1)
BEGIN
SELECT Product_Name, Pro_ID FROM Store
END
ELSE
BEGIN
SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3)
END
或更短的方式:
IF (@x = 1)
SELECT Product_Name, Pro_ID FROM Store
ELSE
SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3)
您可以在以下内容中使用:
IF (@x = 1)
BEGIN
SELECT Product_Name, Pro_ID FROM Store
END
ELSE
BEGIN
SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3)
END
或更短的方式:
IF (@x = 1)
SELECT Product_Name, Pro_ID FROM Store
ELSE
SELECT [Product_Name] FROM [Store] WHERE (Supplier_ID = 3)
可能下面的代码会很有用。如果我理解正确的话。这段代码在SQLServer2012中运行良好
--Creating a Table.
CREATE TABLE #MyTable
(
Column1 VARCHAR(10),
Column2 VARCHAR(10),
OptionalColumn VARCHAR(10)
)
--Inserting value to the Table.
INSERT INTO #MyTable
VALUES('Value 1', 'Value 1','Optional Value')
--IF ELSE Logic to desired output.
DECLARE @Check bit
SET @Check = 0
IF @Check = 1
(
SELECT
Column1,
Column2
FROM
#MyTable
)
ELSE
(
SELECT
Column1,
Column2,
OptionalColumn
FROM
#MyTable
)
可能下面的代码会很有用。如果我理解正确的话。这段代码在SQLServer2012中运行良好
--Creating a Table.
CREATE TABLE #MyTable
(
Column1 VARCHAR(10),
Column2 VARCHAR(10),
OptionalColumn VARCHAR(10)
)
--Inserting value to the Table.
INSERT INTO #MyTable
VALUES('Value 1', 'Value 1','Optional Value')
--IF ELSE Logic to desired output.
DECLARE @Check bit
SET @Check = 0
IF @Check = 1
(
SELECT
Column1,
Column2
FROM
#MyTable
)
ELSE
(
SELECT
Column1,
Column2,
OptionalColumn
FROM
#MyTable
)
你不能在
开始
之后做吗?@sagi我误解了你,你是什么意思?你不能在开始
之后做吗?@sagi我误解了你,你是什么意思?你显示了两个不同列的查询。因此有两件不同的事情。通常会有一个应用程序将第一个或第二个查询发送到DBMS。如果列是相同的(因此两个查询都将返回product_name和pro_id,在您的示例中,第二个查询可能会返回null for pro_id),那么您可以编写一个组合这两个查询的查询。您将显示具有不同列的两个查询。因此有两件不同的事情。通常会有一个应用程序将第一个或第二个查询发送到DBMS。如果列是相同的(因此两个查询都将返回product_name和pro_id,在您的示例中,第二个查询可能会返回null for pro_id),那么您可以编写一个组合这两个查询的查询。