Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在sql查询中获取无数据消息_Sql_Sql Server_Exception_Error Handling_Message - Fatal编程技术网

如何在sql查询中获取无数据消息

如何在sql查询中获取无数据消息,sql,sql-server,exception,error-handling,message,Sql,Sql Server,Exception,Error Handling,Message,我在where子句中使用了一些条件。在某些情况下,会出现一些o/p数据,而在某些情况下,不会出现任何o/p数据。所以当没有o/p数据时,我想打印一条类似“无可用数据”的消息。。。。。你怎么能这么做 这是我的疑问 SELECT "CUSTOMERS"."CUSTOMERNAME", "PRODUCTS"."PRODUCTNAME", "ORDERDETAILS"."QUANTITYORDERED", "ORDERS"."STATUS" FROM "ORDER

我在where子句中使用了一些条件。在某些情况下,会出现一些o/p数据,而在某些情况下,不会出现任何o/p数据。所以当没有o/p数据时,我想打印一条类似“无可用数据”的消息。。。。。你怎么能这么做

这是我的疑问

SELECT
     "CUSTOMERS"."CUSTOMERNAME",
     "PRODUCTS"."PRODUCTNAME",
     "ORDERDETAILS"."QUANTITYORDERED",
     "ORDERS"."STATUS"
FROM "ORDERS" 
INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus}

如果您想在数据库端执行以下查询,则可以使用以下查询,否则可以在前端工具中执行

Declare @count INT

SELECT
     @count=Count("CUSTOMERS"."CUSTOMERNAME")
FROM "ORDERS" 
INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus}

IF @count>0
Begin
   SELECT
    "CUSTOMERS"."CUSTOMERNAME",
    "PRODUCTS"."PRODUCTNAME",
    "ORDERDETAILS"."QUANTITYORDERED",
    "ORDERS"."STATUS"
   FROM "ORDERS" 
   INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
   INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
   INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
   WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus}
END
ELSE
BEGIN
  PRINT 'NO DATA AVAILABLE...'
END
编辑:否则您可以使用如下查询

Declare @Temptbl Table
(
CUSTOMERNAME Varchar(250),
PRODUCTNAME Varchar(250),
QUANTITYORDERED Int,
STATUS Varchar(50)
)

Insert into @Temptbl(CUSTOMERNAME,PRODUCTNAME,QUANTITYORDERED,STATUS)
SELECT
    "CUSTOMERS"."CUSTOMERNAME",
    "PRODUCTS"."PRODUCTNAME",
    "ORDERDETAILS"."QUANTITYORDERED",
    "ORDERS"."STATUS"
   FROM "ORDERS" 
   INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
   INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
   INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
   WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus}
IF (Select Count(*) from @Temptbl)>0
Begin
   Select * from @Temptbl
END
ELSE
BEGIN
    PRINT 'NO DATA AVAILABLE...'
END

使用存在检查数据是否可用

if exists (SELECT
    1
   FROM "ORDERS" 
   INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
   INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
   INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
   WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus})
begin
 SELECT
    "CUSTOMERS"."CUSTOMERNAME",
    "PRODUCTS"."PRODUCTNAME",
    "ORDERDETAILS"."QUANTITYORDERED",
    "ORDERS"."STATUS"
   FROM "ORDERS" 
   INNER JOIN "CUSTOMERS" ON "ORDERS"."CUSTOMERNUMBER" = "CUSTOMERS"."CUSTOMERNUMBER"
   INNER JOIN "ORDERDETAILS" ON "ORDERS"."ORDERNUMBER" = "ORDERDETAILS"."ORDERNUMBER"
   INNER JOIN "PRODUCTS" ON "ORDERDETAILS"."PRODUCTCODE" = "PRODUCTS"."PRODUCTCODE"
   WHERE "CUSTOMERS"."CITY" = ${LoadCity} AND "ORDERS"."STATUS" = ${LoadStatus}
end
else
 begin
 PRINT 'NO DATA AVAILABLE...'
end

使用pentaho 5.2 report designer sql查询控制台在客户端IM上更好地处理了这一问题,因此没有一个ans适合我。无论如何,谢谢大家。。。。。。