Ich habe einen Auftrag Aufgabe, die die Namen der Mitarbeiter, deren Namen beginnen mit K, M oder S zur Liste istWIE 'X%' ODER WIE 'Y%' ODER WIE 'Z%' =/= WIE '[XYZ]%'?
Die Mitarbeiter Tabelle:
ENAME
----------
KING
BLAKE
CLARK
JONES
MARTIN
ALLEN
TURNER
JAMES
WARD
FORD
SMITH
ENAME
----------
SCOTT
ADAMS
MILLER
kommt das Problem.
Wenn ich den folgenden Befehl verwenden, es funktioniert, aber es ist ziemlich wortreich:
SQL> SELECT ename from emp where ename LIKE 'K%' OR ename LIKE 'M%' OR ename LIKE 'S%';
ENAME
----------
KING
MARTIN
SMITH
SCOTT
MILLER
Aber wenn ich diesen Befehl versuchen, die funktionieren sollte, es gibt mir diese:
SQL> SELECT ename from emp where ename LIKE '[KMS]%';
no rows selected
Meine Verständlich ist, dass die [] einen Platzhalterbereich oder bestimmte Werte erlaubt, aber ich verstehe nicht, warum dies nicht Mitarbeiter überprüfen, deren Namen mit K, M oder S beginnen.
„aber ich verstehe nicht, warum dies erlaubt nicht, Mitarbeiter zu überprüfen, deren Namen mit K, M oder S beginnen "- weil (definitionsgemäß) Mitarbeiter mit Namen ausgewählt werden, die explizit mit" KMS "beginnen –
@MitchWheat Laut diesem Link https://msdn.microsoft .com/de-us/library/ms179859.aspx? f = 255 & MSPPError = -2147217396, es besagt, dass der Platzhalter [] ein einzelnes Zeichen innerhalb des angegebenen Bereichs ([af]) oder set ([abcdef]) zulässt. – yuritsuki
sqlplus ist nicht TSQL –