GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Como eu faço para saber se o retorno de um SELECT é null ou não

Tags: #<Tag:0x00007fa006539d48>

Eu estou fazendo um select onde eu preciso saber se o resultado dele é igual a null ou não, eu tentei com into e count mas não consegui.

SELECT 
	PR.MERCHANT_ID,
	vDeptoId,
	PR.PRODUTO,
	PR.MOEDA_LIQ,
	PR.TIPO_PAGTO,
	PR.MONTANTE_MIN,
	PR.MONTANTE_MAX,
	(SELECT C.COD_CNAE FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	PR.DENOMINACAO,
	PR.ATIV_COMERCIAL,
	(SELECT C.MCC FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	(SELECT C.DESCRICAO FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	PR.TIPO_TABELA,
	PR.TIPO_PRECO,
	PR.VALOR,
	PR.BIN,
	PR.PLANO_VENDA,
	PR.BANDEIRA,
	PR.STATUS 
FROM 
	N_PRECO_FORMATADO PR 
WHERE PR.MCC = vMCC AND PR.MERCHANT_ID = vMerchantId  AND PR.COD_DEPARTAMENTO = codDeptoCopiaPR; 

Preciso saber se o retorno é null ou não.

Agradeço que ajuda!

não sei de fato qual a sua finalidade real.
mas a query abaixo ela irá trazer 1 linha NULL tendo ou não registro. mas acredito q vc vai ter que adequar a sua lógica.

SELECT 
T.PR.MERCHANT_ID,
T.vDeptoId
FROM
(
SELECT 
	PR.MERCHANT_ID,
	vDeptoId,
	PR.PRODUTO,
	PR.MOEDA_LIQ,
	PR.TIPO_PAGTO,
	PR.MONTANTE_MIN,
	PR.MONTANTE_MAX,
	(SELECT C.COD_CNAE FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	PR.DENOMINACAO,
	PR.ATIV_COMERCIAL,
	(SELECT C.MCC FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	(SELECT C.DESCRICAO FROM N_CNAE C INNER JOIN N_DEPARTAMENTO DEP ON C.ID_TAB_CNAE = DEP.ID_CNAE INNER JOIN N_PAY_FAC PF ON DEP.ID_PAY_FAC = PF.ID_PAY_FAC WHERE PF.MERCHANT_ID = PR.MERCHANT_ID AND PF.TIPO_PAY_FAC = 'Matriz' AND DEP.COD_DEPARTAMENTO = vDeptoId),
	PR.TIPO_TABELA,
	PR.TIPO_PRECO,
	PR.VALOR,
	PR.BIN,
	PR.PLANO_VENDA,
	PR.BANDEIRA,
	PR.STATUS 
FROM 
	N_PRECO_FORMATADO PR 
WHERE PR.MCC = vMCC AND PR.MERCHANT_ID = vMerchantId  AND PR.COD_DEPARTAMENTO = codDeptoCopiaPR; 

UNION
SELECT 
	NULL AS MERCHANT_ID,
	NULL AS vDeptoId,
	NULL AS PRODUTO,
	NULL AS MOEDA_LIQ,
	NULL ASTIPO_PAGTO,
	NULL AS MONTANTE_MIN,
	NULL AS MONTANTE_MAX,
	NULL
	NULL AS DENOMINACAO,
	NULL AS ATIV_COMERCIAL,
	NULL ,
	NULL,
	NULL AS TIPO_TABELA,
	NULL AS TIPO_PRECO,
	NULL AS VALOR,
	NULL AS BIN,
	NULL AS PLANO_VENDA,
	NULL AS BANDEIRA,
	NULL AS STATUS 
)T
SELECT count(*) 
  FROM N_PRECO_FORMATADO PR 
 WHERE PR.MCC = vMCC 
   AND PR.MERCHANT_ID = vMerchantId 
   AND PR.COD_DEPARTAMENTO = codDeptoCopiaPR;
//