Format select output

Asked

Viewed 277 times

1

I have a problem to format a column in gridview, this column takes three values from the concatenated database, utlimo value can be null, if null has with not present the last trace that separates the value 2 from the value 3.

SELECT TOP(20)  IdItem, IdComanda, 
                       (convert(varchar(10),IdProduto) + '  -  ' + Produto.nomeproduto + ' -  ' + isnull(complemento,'')) as 'Item', 
                       Unid, 
                       Qtde, 
                       isnull(Pessoa.Apelido,'--') as 'Garcon', 
                       idStatusEntrega as 'Status', 
                       dtSolicitacao as 'HrSolicitacao', 
                        dtPreparo as 'HrPreparacao', 
                        Comanda.NrComanda, Comanda.NrMesa
                  FROM ComandaItem 
                 inner join Produto ON produto.ProdId = ComandaItem.IdProduto
                 INNER JOIN Comanda ON ComandaItem.IdComanda = Comanda.Id
                  left join Pessoa ON Pessoa.IDCadastro = ComandaItem.IdVendedor 
                 WHERE (idStatusEntrega = 1)  
                   and (@IdSetorPreparo = 0 or IdSetorPreparo = @IdSetorPreparo) 
                 ORDER BY dtPreparo DESC

2 answers

6


Inside the isnull function, just concatenate ' - ' with the complement field.

When the complement field is null the result of concatenation will be null.

It’ll stay that way:

(convert(varchar(10),IdProduto) + '  -  ' + Produto.nomeproduto + isnull( ' -  ' + complemento,'')) as 'Item'
  • I thought about it, but I don’t think it works. The isnull will check the result of concatenation, does it understand when it is null after that ?

  • It does work. This answer is correct.

0

And if you use the function SUBSTRING.

SUBSTRING (
(
    convert(varchar(10),IdProduto) + 
    ' - ' + Produto.nomeproduto + 
    ' - '  + isnull(complemento,'')),
0, 
LEN(
    (convert(varchar(10),IdProduto) + 
     ' - ' + Produto.nomeproduto + 
     ' - ' + isnull(complemento,'')) -3) as 'Item',

Browser other questions tagged

You are not signed in. Login or sign up in order to post.