2016-07-21 6 views
0

Stellen Sie sich vor, ich habe eine Audit-Tabelle, die die folgenden Spalten enthält:MSSQL - Kann nur Spalten in einer Zeile auswählen, die unterschiedliche Werte

id schedule weekday weekday_old weekend weekend_old 
1 week1  m,t,w  th,f   sa,su  sa,su 
1 week2  m,t,w  m,t,w   sa,su  sa,su 
1 week3  m,t,w  w,th,f  sa,su  sa 
1 week4  m,t,w  m,t,w   sa,su  sa,su 
1 week5  m,t,w  m,t,w   sa,su  sa,su 
1 week6  m,t,w  m,t,w   sa  su  
1 week7  m,t,w  m,t,w   sa  su 

Gibt es einen SQL-Befehl (n), die mir erlaubt, zu wählen Nur die Zeilen, bei denen sich die Daten im Wochentag/Wochentag_Alt unterscheiden, oder Wochenende/Wochenende_Alt ist anders oder (wenn Wochentag/Wochentag_Alt und Wochenende/Wochenende_Alt) unterschiedlich ist und die Werte in Spalten ersetzen, die gleich Null sind? So

, die obige Tabelle, möchte ich folgendes

zurückgegeben werden
week1  m,t,w  th,f   null  null 
week3  m,t,w  w,th,f  sa,su sa 
week6  null  null   sa  su  
week7  null  null   sa  su 

Das klingt vielleicht verrückt, aber wir versuchen zu tun, was wir mit den Werkzeugen, fragten wir haben. Ich freue mich auf jede Hilfe. Vielen Dank.

** Ich habe week4 aus der Ergebnistabelle entfernt. Es war ein Tippfehler.

Antwort

1

verwenden Was Sie nicht beschrieben Ihre Probe nicht übereinstimmen (warum week4 ausgewählt würden und nicht leer ist). Angenommen, es war ein Tippfehler:

SELECT schedule, 
NULLIF(weekday,weekday_old) AS weekday, 
NULLIF(weekday_old,weekday) AS weekday_old, 
NULLIF(weekend,weekend_old) AS weekend, 
NULLIF(weekend_old,weekend) AS weekend_old 
FROM dbo.mytable 
WHERE NULLIF(weekday,weekday_old) IS NOT NULL or NULLIF(weekend,weekend_old) IS NOT NULL; 
+0

Der NULLIF funktionierte perfekt. Genau das, was ich gesucht habe. – MaxAx

0

Sie können sich wahrscheinlich CASE Ausdruck wie

CASE WHEN weekday = weekday_old THEN NULL ELSE weekday END AS weekday 
+0

Ich werde das versuchen. Vielen Dank. – MaxAx

+0

Rahul, Vielen Dank für den Vorschlag CASE, aber ging mit NULLIF oben. – MaxAx

Verwandte Themen