List:General Discussion« Previous MessageNext Message »
From:Rhino Date:February 28 2006 1:28pm
Subject:Re: returning empty columns
View as plain text  
----- Original Message ----- 
From: "2wsxdr5" <2wsxdr5@stripped>
To: <mysql@stripped>
Sent: Tuesday, February 28, 2006 3:43 AM
Subject: returning empty columns


> This is probably going to sound like an odd request, but is there a way to 
> return empty columns in Mysql.  For example a roll call sheet I want to do 
> a select of names from my table and then add a column for each  of the 
> next 12 weeks.  I tried this.....
>
> SELECT `Call`, concat(FName, ' ', LName) as Name, 'Mar-6' ,'Mar-13', 
> 'Mar-20', 'Mar-27'
> FROM table
> Order BY LName, FName
>
> The problem is it put that date on every row and I just want the names to 
> show up in the column header  I know I could just write some php code to 
> print out a table with the columns but I have a handy php function the 
> prints the out put of a query in a table already so if I can find the 
> right query I don't have to change that code any.
>
In 20+ years of writing and teaching SQL I can't remember anyone ever 
wanting to do this but you can easily get a blank column (or twelve) with 
just a slight modification of the technique you already tried. The values 
you put within apostrophes, like 'Mar-20', are just literals so, instead of 
putting text between the apostrophes, just write two consecutive 
apostrophes. Therefore:

SELECT `Call`, concat(FName, ' ', LName) as Name, '' ,'', '', ''
 FROM table
 Order BY LName, FName

will give you the same information you got before but each of the four extra 
columns should be empty. If you want those columns to have titles, use an AS 
expression, like this:

SELECT `Call`, concat(FName, ' ', LName) as Name, '' as "Eenie" ,'' as 
"Meenie", '' as "Miney", '' as "Moe"
 FROM table
 Order BY LName, FName

Be careful when typing my examples: to get a blank column, you need two 
consecutive apostrophes (sometimes called single quotes) but the AS 
expressions need to be within double quotes.

Wait! I was wrong! I just tried it using single quotes in the AS expressions 
and it still worked fine:

SELECT `Call`, concat(FName, ' ', LName) as Name, '' as 'Eenie' ,'' as 
'Meenie', '' as 'Miney', '' as 'Moe'
 FROM table
 Order BY LName, FName

It even worked when I used backtics (`):

SELECT `Call`, concat(FName, ' ', LName) as Name, '' as `Eenie` ,'' as 
`Meenie`, '' as `Miney`, '' as `Moe`
 FROM table
 Order BY LName, FName

You can also use pairs of double quotes to create the empty columns:

SELECT `Call`, concat(FName, ' ', LName) as Name, "" as `Eenie` ,"" as 
`Meenie`, "" as `Miney`, "" as `Moe`
 FROM table
 Order BY LName, FName

But you can't use pairs of backtics:

SELECT `Call`, concat(FName, ' ', LName) as Name, `` as `Eenie` , `` as 
`Meenie`, `` as `Miney`, `` as `Moe`
 FROM table
 Order BY LName, FName

So, MySQL is more tolerant than I realized.

--
Rhino 



-- 
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.375 / Virus Database: 268.1.1/271 - Release Date: 28/02/2006

Thread
returning empty columns2wsxdr528 Feb
  • Re: returning empty columnsRhino28 Feb
RE: returning empty columnsRandall Price28 Feb