2 Stimmen

SQL Server Abfrage zum Geschlechtertausch

Ich habe eine Tabelle mit der folgenden Spalte:

ID, Name, Designation, Salary, Contact, Address, Gender

Versehentlich habe ich für alle männlichen Geschlechter "Female" und für alle weiblichen Geschlechter "Male" eingegeben. Zum Beispiel

0023 Scott Developer 15000 4569865 Cliff_Eddington,USA Female

In der obigen Zeile sollte es Male statt Female heißen. Und es gibt alle Male, deren Geschlecht als Female aktualisiert wurde. Dasselbe gilt für alle weiblichen Personen, deren Geschlecht als männlich aktualisiert wurde.

Gibt es eine einzelne Abfrage, durch die ich alle Zeilen ändern kann, deren Geschlecht männlich ist, ändern Sie es in weiblich und alle Zeilen, deren Geschlecht weiblich ist, ändern Sie es in männlich.

9voto

chris Punkte 9335

Das sollte genügen

UPDATE tbl SET Gender = (CASE WHEN Gender = 'Male' THEN 'Female' ELSE 'Male' END)

(Entschuldigung, war mysql-Syntax, für ms-sql korrigiert)

8voto

Neil Knight Punkte 45712

Ich würde eine SELECT COUNT(*) bevor Sie die Aktualisierungen durchführen, damit Sie die richtigen Ergebnisse erhalten, und dann COMMIT die Transaktion:

BEGIN TRANSACTION

UPDATE tableA 
   SET Gender = CASE  
                WHEN Gender = 'Male' THEN 'Female'  
                ELSE 'Male'  
                END

--COMMIT TRANSACTION
--ROLLBACK TRANSACTION

4voto

Adriaan Stander Punkte 155899

Sie können etwas versuchen wie

UPDATE TABLE
SET Gendeer =   CASE 
                    WHEN Gender = 'Male' 
                        THEN 'Female' 
                    ELSE 'Male' 
                END

1voto

Sudheer Kumar Punkte 463

Wenn Sie nach einer allgemeinen Methode suchen, können Sie auch die folgenden Abfragen verwenden. Ich will nicht sagen, dass diese Methode schneller oder einfacher ist, aber sie ist für alle relationalen Datenbanken anwendbar. Ich habe hier nach einer Abfrage ohne DECODE und CASE-Anweisungen gesucht und diese Antwort gefunden. Also dachte ich mir, dies zu teilen.

UPDATE tableA SET Gender = 'Temp' WHERE Gender = 'Male'; UPDATE tableA SET Gender = 'Male' WHERE Gender = 'Female'; UPDATE tableA SET Gender = 'Female' WHERE Gender = 'Temp';

0voto

Verma007 Punkte 1

1) Erste Methode

Update *Table_Name*
Set *Column_Name* = Case *Column_Name*
When 'M' then 'F' 
When 'F' then 'M'
End

2) Zweite Methode

Update *Table_Name*
Set *Column_Name* = IF('M','F','M')
  • Bei 2) bin ich mir nicht ganz so sicher, aber 1) funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X