如何在sql查询中获取无数据消息
我在where子句中使用了一些条件。在某些情况下,会出现一些o/p数据,而在某些情况下,不会出现任何o/p数据。所以当没有o/p数据时,我想打印一条类似“无可用数据”的消息。。。。。你怎么能这么做 这是我的疑问如何在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
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适合我。无论如何,谢谢大家。。。。。。