2017-05-16 2 views
0

Ich versuche, mehrere Spalten in einer Tabelle zu aktualisieren. Hier ist ein Beispiel dafür, was ich versuche zu tun:SQL-Aktualisierungstabelle mit mehreren Bedingungen in der WHERE-Anweisung ACCESS

Sagen, ich habe diese Tabelle:

User | Letter1 | Letter2 
1 | 'A'  | 'X' 
2 | 'X'  | 'X' 
3 | 'R'  | 'G' 

und ich mag es so zu einer Tabelle konvertieren, in der alle X ersetzt werden durch „_ "(unterstreicht).

User | Letter1 | Letter2 
1 | 'A'  | '_' 
2 | '_'  | '_' 
3 | 'R'  | 'G' 

Ich versuchte dies:

Update table1 
SET Letter1 = '_', Letter2 = '_' 
WHERE Letter1 = "X", Letter2 = "X" 

jedoch, das nicht funktioniert. Jede Hilfe wäre großartig. Vielen Dank im Voraus

+0

Einfache oder doppelte Anführungszeichen? (I.e. ist '" X "' eine Spalte oder ein Wert?) – jarlh

+0

@jarlh. . . Es ist MS Access so doppelte Anführungszeichen markiert. –

+0

Ich sehe ... Warum können nicht alle Produkte ANSI SQL kompatibel sein ... – jarlh

Antwort

3

Wenn Sie dies in einem einzigen Update machen wollen, werden Sie bedingte Logik benötigen:

Update table1 
    SET Letter1 = IIF(Letter1 = "X", "_", Letter1), 
     Letter2 = IIF(Letter1 = "X", "_", Letter2) 
    WHERE Letter1 = "X" OR Letter2 = "X"; 

Allerdings könnten zwei separate Aussagen klarer sein:

Update table1 
    SET Letter1 = "_" 
    WHERE Letter1 = "X"; 

Update table1 
    SET Letter2 = "_" 
    WHERE Letter2 = "X"; 
1

Verwenden Sie den folgenden Abfrage

Update table1 
SET Letter1 = '_', Letter2 = '_' 
WHERE Letter1 = 'X' or Letter2 = 'X'; 

Oder verwenden zwei Update-Anweisungen

Update table1 
SET Letter1 = '_' 
WHERE Letter1 = 'X'; 

Update table1 
SET Letter2 = '_' 
WHERE Letter2 = 'X';