2016-07-23 21 views
-1

Ich möchte nur bestimmte Werte aus jeder Spalte auswählen. Keine eindeutige Kombination. Hier ist meine Abfrage, aber es gibt eine eindeutige Kombination aller Spalten zurück. Ich möchte, dass jede Spalte ihre eigenen eindeutigen Werte zeigt, ohne von anderen Spalten abhängig zu sein.wählen Sie eindeutige Werte aus allen Spalten

$sql= "select distinct 
      CASE WHEN col1 not regexp '[0-9]' THEN col1 else null end as col1 
      ,CASE WHEN col2 not regexp '[0-9]' THEN col2 else null end as col2 
      ,CASE WHEN col3 not regexp '[0-9]' THEN col3 else null end as col3 from table_name"; 

Es gibt diese:

col1| col2| col3 
a  1  3 
b  2  4 
c  2  4 
d  1  3 

euch, dass die Werte von col2 sehen konnte und col3 nicht unterscheiden i von col2 und col3 auch nur deutliche wollen. Vielen Dank!

+0

Können Sie näher auf "aber nicht funktioniert"? Können Sie uns Beispieldaten zeigen und was ist Ihre gewünschte Ausgabe? –

+0

@TimBiegeleisen überprüfe es jetzt hoffentlich bekommst du es. – tooba

+0

Distinct funktioniert über alle Spalten hinweg, nicht einzeln in ihnen, im Falle von 'distinct col1, col2, col3' ... und Ihre' case'-Anweisung hat keinen Einfluss auf – Drew

Antwort

0

Meine beste Vermutung, was Sie wollen, ist union all zu verwenden:

select distinct (case when col1 not regexp '[0-9]' then col1 end) as col1, 'col1' as which 
from table_name 
union all 
select distinct (case when col2 not regexp '[0-9]' then col2 end) as col2, 'col2' as which 
from table_name 
union all 
select distinct (case when col3 not regexp '[0-9]' then col3 end) as col3, 'col3' as which 
from table_name; 

Dies erzeugt ein Ergebnis mit zwei Spalten, eine ist der Spaltenname und der andere ist ein deutlicher Wert in der Spalte.

+0

es funktioniert nicht. Einfach ist, dass ich unterschiedliche Werte von allen Spalten getrennt haben möchte. Ich hoffe du bekommst es. – tooba

+0

Wenn Sie Gordon einige Beispieldaten gezeigt haben, die Sie haben, und Erwartete Ergebnisse, könnte er dies im Schlaf tun – Drew

+0

Es hilft mir danke. – tooba

Verwandte Themen