Roger <[EMAIL PROTECTED]> writes: > Select p.name||p1.name||p2.name > from people as p left join user as u as > u.uid = p.pid left joun people as p2 on > u.uid=p2.pid left join people as p3 on > u.uid=p3.pid; > > The problem is that if one of the rows does not have a value, it returns > and empty string.Now in my report i end up with lots of null columns. > Please help, how do i return something at least from this query if one > of the columns has a null value in it.
I think you're asking two different questions here. Firstly, to replace an empty string with something non-empty, you can use COALESCE(): SELECT COALESCE(p.name, 'empty') || COALESCE(p1.name, 'empty') || COALESCE(p2.name, 'empty') FROM people p LEFT JOIN user u ON u.uid = p.pid LEFT JOIN people p2 ON u.uid=p2.pid LEFT JOIN people p3 ON u.uid=p3.pid; What I think you're really asking, though, is about the rows that are NOT returned because there are null values. To fix that, you're probably looking for LEFT OUTER JOIN: SELECT p.name || p1.name || p2.name FROM people p LEFT OUTER JOIN user u ON u.uid = p.pid LEFT OUTER JOIN people p2 ON u.uid=p2.pid LEFT OUTER JOIN people p3 ON u.uid=p3.pid; Derrell ps. if you copy/paste the query from your source instead of retyping it, you'll end up with many fewer typos, and will make it easier for people to help you. Your query was full of typos.