Zum Inhalt springen

Reinhold

Mitglieder
  • Gesamte Inhalte

    730
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von Reinhold

  1. Aus besagter Hilfe: LIKE Bestimmt, ob die angegebene Zeichenfolge einem angegebenen Muster entspricht. Ein Muster kann normale Zeichen und Platzhalterzeichen einschließen. Bei einem Mustervergleich müssen normale Zeichen exakt mit den angegebenen Zeichen in der Zeichenfolge übereinstimmen. Platzhalterzeichen können jedoch mit beliebigen Teilen der Zeichenfolge übereinstimmen. Das Verwenden der Vergleichsoperatoren für Zeichenfolgen = und != ist nicht so flexibel wie das Verwenden von Platzhalterzeichen mit dem LIKE-Operator. Ist eines der Argumente nicht vom Zeichenfolgen-Datentyp, versucht Microsoft® SQL Serverâ„¢, dieses Argument gegebenenfalls in den Zeichenfolgen-Datentyp zu konvertieren. Syntax match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ] Argumente match_expression Ein gültiger SQL Server-Ausdruck des Zeichenfolgen-Datentyps. pattern Das Muster, das in match_expression gesucht wird. Das Muster kann die folgenden gültigen SQL Server-Platzhalterzeichen einschließen. Platzhalter Beschreibung Beispiel % Eine Zeichenfolge aus null oder mehr Zeichen WHERE title LIKE '%Computer%' findet alle Buchtitel, die das Wort 'Computer' enthalten. _ (Unterstrich) Ein einzelnes Zeichen WHERE au_fname LIKE '_ean' findet alle Vornamen mit vier Buchstaben, die auf ean enden (Dean, Sean usw.). [ ] Beliebiges einzelnes Zeichen im angegebenen Bereich ([a-f]) oder in der angegebenen Menge ([abcdef]). WHERE au_lname LIKE '[C-P]arsen' findet alle Autorennachnamen, die auf arsen enden und mit einem einzelnen Zeichen zwischen C und P beginnen, z. B.: Carsen, Larsen, Karsen usw. [^] Beliebiges einzelnes Zeichen, das sich nicht im angegebenen Bereich ([^a-f]) oder in der angegebenen Menge ([^abcdef]) befindet. WHERE au_lname LIKE 'de[^l]%' findet alle Autorennachnamen, die mit de beginnen und deren dritter Buchstabe nicht l ist. escape_character Ein beliebiger gültiger SQL Server-Ausdruck eines beliebigen Datentyps aus der Zeichenfolgen-Datentypkategorie. escape_character hat keine Standardeinstellung und darf nur aus genau einem Zeichen bestehen. Ergebnistypen Boolesch Ergebniswert LIKE gibt TRUE zurück, wenn match_expression dem angegebenen pattern entspricht. Hinweise Beim Zeichenfolgenvergleich mit LIKE werden alle in der Musterzeichenfolge vorkommenden Zeichen berücksichtigt, einschließlich führender oder nachfolgender Leerzeichen. Wenn in einer Abfrage LIKE 'abc ' (abc, gefolgt von einem Leerzeichen) verwendet wird, um Zeilen zurückzugeben, die dem Muster abc ähnlich sind, werden keine Zeilen zurückgegeben, die den Wert abc (abc ohne Leerzeichen) enthalten. Nachfolgende Leerzeichen in dem Ausdruck, der mit dem Muster verglichen wird, werden jedoch ignoriert. Wenn in einer Abfrage LIKE 'abc' (abc ohne Leerzeichen) verwendet wird, um Zeilen zurückzugeben, die dem Muster abc ähnlich sind, werden alle Zeilen zurückgegeben, die mit abc anfangen und null oder mehr nachfolgende Leerzeichen enthalten. Ein Zeichenfolgenvergleich mithilfe eines Musters, das Daten der Typen char und varchar enthält, kann bei einem Vergleich mit dem LIKE-Operator wegen der Art der Datenspeicherung fehlschlagen. Daher ist es wichtig zu verstehen, wie die einzelnen Datentypen gespeichert werden und wann ein Vergleich mit LIKE fehlschlagen kann. Im folgenden Beispiel wird eine lokale char-Variable an eine gespeicherte Prozedur übergeben. Mit einem Mustervergleich sollen dann alle Bücher eines bestimmten Autors gefunden werden. Der Nachname des Autors wird in dieser Prozedur als Variable übergeben. CREATE PROCEDURE find_books @AU_LNAME char(20) AS SELECT @AU_LNAME = RTRIM(@AU_LNAME) + '%' SELECT t.title_id, t.title FROM authors a, titleauthor ta, titles t WHERE a.au_id = ta.au_id AND ta.title_id = t.title_id AND a.au_lname LIKE @AU_LNAME Die find_books-Prozedur gibt keine Zeilen zurück, da die char-Variable (@AU_LNAME) immer dann nachfolgende Leerzeichen enthält, wenn der Name weniger als 20 Zeichen enthält. Da die au_lname-Spalte vom Typ varchar ist, sind keine nachfolgenden Leerzeichen vorhanden. Diese Prozedur schlägt fehl, da die nachfolgenden Leerzeichen von Bedeutung sind. Das folgende Beispiel ist erfolgreich, da nachfolgende Leerzeichen zu einer varchar-Variablen nicht hinzugefügt werden: USE pubs GO CREATE PROCEDURE find_books2 @au_lname varchar(20) AS SELECT t.title_id, t.title FROM authors a, titleauthor ta, titles t WHERE a.au_id = ta.au_id AND ta.title_id = t.title_id AND a.au_lname LIKE @au_lname + '%' EXEC find_books2 'ring' Im Folgenden wird das Resultset aufgeführt: title_id title -------- --------------------------------------------------------------- MC3021 The Gourmet Microwave PS2091 Is Anger the Enemy? PS2091 Is Anger the Enemy? PS2106 Life Without Fear (4 row(s) affected) Mustervergleiche mit LIKE Bei der Suche nach datetime-Werten wird die Verwendung von LIKE empfohlen, da datetime-Einträge verschiedene Teile eines Datums enthalten können. Wird z. B. der Wert 19981231 9:20 in eine Spalte namens arrival_time eingefügt, kann die Klausel WHERE arrival_time = '9:20' keine exakte Übereinstimmung mit der Zeichenfolge 9:20 finden, da SQL Server den Eintrag in 1998-12-31 09:20:00.000 konvertiert. Eine Übereinstimmung wird jedoch durch die Klausel WHERE arrival_time LIKE '%9:20%' gefunden. LIKE unterstützt Mustervergleiche im ASCII- und Unicodeformat. Sind alle Argumente (match_expression, pattern und gegebenenfalls escape_character) ASCII-Zeichen, wird ein ASCII-Mustervergleich durchgeführt. Wenn eines der Argumente von einem Unicode-Datentyp ist, werden alle Argumente in Unicode konvertiert und ein Unicode-Mustervergleich durchgeführt. Wenn Sie beim LIKE-Operator Unicode-Daten (nchar- oder nvarchar-Datentypen) verwenden, werden nachfolgende Leerzeichen berücksichtigt. Bei Daten, die nicht vom Typ Unicode sind, werden nachfolgende Leerzeichen ignoriert. Der Unicode-LIKE-Operator ist mit dem SQL-92-Standard kompatibel. Der ASCII-LIKE-Operator ist mit früheren Versionen von SQL Server kompatibel. Die folgenden Beispiele verdeutlichen die Unterschiede der zurückgegebenen Zeilen beim Durchführen von Mustervergleichen mit ASCII- und Unicode-LIKE-Operatoren: -- ASCII pattern matching with char column CREATE TABLE t (col1 char(30)) INSERT INTO t VALUES ('Robert King') SELECT * FROM t WHERE col1 LIKE '% King' -- returns 1 row -- Unicode pattern matching with nchar column CREATE TABLE t (col1 nchar(30)) INSERT INTO t VALUES ('Robert King') SELECT * FROM t WHERE col1 LIKE '% King' -- no rows returned -- Unicode pattern matching with nchar column and RTRIM CREATE TABLE t (col1 nchar (30)) INSERT INTO t VALUES ('Robert King') SELECT * FROM t WHERE RTRIM(col1) LIKE '% King' -- returns 1 row Anmerkung Beim Durchführen von Zeichenfolgenvergleichen mit LIKE werden alle Zeichen der Musterzeichenfolge berücksichtigt, einschließlich führender und nachfolgender Leerzeichen. Verwenden des %-Platzhalterzeichens Wird bei LIKE beispielsweise 5% angegeben, sucht SQL Server nach der Zahl 5, gefolgt von einer beliebigen Zeichenfolge mit null oder mehr Zeichen. In der folgenden Abfrage werden z. B. alle Systemtabellen einer Datenbank angezeigt, da alle Namen dieser Tabellen mit den Buchstaben sys beginnen: SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE 'sys%' Anmerkung Bedenken Sie, dass sich Systemtabellen von Version zu Version ändern können. Zum Arbeiten mit SQL Server-Systemtabellen wird die Verwendung von Informationsschemasichten oder entsprechenden gespeicherten Prozeduren empfohlen. Mit NOT LIKE 'sys%' werden alle Objekte angezeigt, die nicht Systemtabellen sind. Sind insgesamt 32 Objekte vorhanden und LIKE ermittelt 13 dieser Objekte, die dem Muster entsprechen, ermittelt NOT LIKE die 19 Objekte, die dem Muster nicht entsprechen. Mit einem Muster wie in LIKE '[^s][^y][^s]%' werden möglicherweise nicht immer die gleichen Namen gefunden. Anstelle von 19 Namen werden möglicherweise nur 14 angezeigt, da Namen, die mit s beginnen oder deren zweiter Buchstabe y oder deren dritter Buchstabe s ist, aus dem Resultset ebenso entfernt werden wie die Namen der Systemtabellen. Grund dafür ist die schrittweise Auswertung von Musterzeichenfolgen mit negativen Platzhalterzeichen - es wird Platzhalter für Platzhalter ausgewertet. Wenn der Vergleich an einem beliebigen Punkt der Auswertung fehlschlägt, wird das entsprechende Objekt aus dem Resultset entfernt. Verwenden von Platzhalterzeichen als Literale Platzhalterzeichen können auch als Literalzeichen verwendet werden. Um ein Platzhalterzeichen als Literalzeichen zu verwenden, schließen Sie das Platzhalterzeichen in Klammern ein. Die folgende Tabelle enthält einige Beispiele für die Verwendung des LIKE-Schlüsselwortes und der [ ]-Platzhalterzeichen. Symbol Bedeutung LIKE '5[%]' 5% LIKE '[_]n' _n LIKE '[a-cdf]' a, b, c, d oder f LIKE '[-acdf]' -, a, c, d oder f LIKE '[ [ ]' [ LIKE ']' ] LIKE 'abc[_]d%' abc_d und abc_de LIKE 'abc[def]' abcd, abce und abcf ... (geht noch weiter)
  2. Der gesuchte Wert muss mit 4 beginnern, das 2. Zeichen 1 oder 2 oder 3 oder 4 sein, der Rest ist wurscht. Der gesuchte Wert muss mit 8 oder 9 beginnen, der Rest ist wurscht. Schau mal in der Hilfe des Query Analyzers unter LIKE nach. hth und hollaröhdulljöh Reinhold
  3. Achtung, ungetestet, weil kein MySql zu Hand, aber so etwa sollte es gehen: Select Recht from Rechtetabelle where ID not in ( Select RechtID from Beziehungstabelle where BenutzerID = ( Select ID from Benutzertabelle where Benutzername = 'knurpsel' ) )[/PHP]
  4. > Mit SqlStore die Procedure einmalig speichern: > Call SqlStore ( hSql, 'NameSP', 'Statement SP' ) > > Dann mitSqlRetrieve die Procedure ausführen > Call SqlRetrieve ( hSql, 'NameSP', commaseperated Liste der Bind Variablen > aus NameSP, Möglich:commaseperated Liste aus IntoVariablen, muss > anzahlmässig der bind Liste entsprechen) Leider klappt das (zumindest bei mir) nicht mit dem MS-SQL-Server, sondern vermutlich nur mit Oracle oder Gupta. Die Lösung, die ich gefunden habe (mit elend viel googlen) erfordert eine benutzerdefinierte Installation, damit die ODBSAL32.APL vorhanden ist und sieht so aus: Call SqlSetResultSet( hSql,FALSE ) Set bOK = OdrPrepareProc (hSql ,'{Call MyProc (:v1, :v2 )}','strNull') If bOK Call SqlExecute(hSql) Else Call SalMessageBox ( "Fehler in Procedure", "UZB", 0) > Den Kaffee beim nächsten Bayern Stammtisch abgeben....
  5. Also dann so, dieses mal getestet (A5 ist char): insert into Test2 (A1, A2, A3, A4, A5) select A1, A2, A3, A4, ( Cstr(A3) & CStr(A4) ) from Test1; Anmerkung: dein o.a. Beispiel kann so nicht stimmen: wenn A3 wirklich 234234 enthält, ist es auf keinen Fall ein integer. Grüße Reinhold
  6. Probier mal (ungetestet): insert into Test2 select A1, A2, A3, A4, ( Cstr(A3) & CStr(A4) ) from Test
  7. Moin, FAQ lesen: FAQ4Formulare Viele Grüße Reinhold
  8. Moin, zugegeben eine seltsame Kombination: MS-SQL-Server 200 und Centura Team Developer 1.5 Wie kann ich aus CTD eine "Stored Procedure" aufrufen? Bitte mit einem flachen Beispiel. Jede richtige Antwort gewinnt einen Kaffee Reinhold
  9. Wenn du möchtest, kann ich dir ein (eventuell noch anzupassendes) Beispiel für Portierung nach Oracle zuschicken. (Access 2000) Gruß Reinhold
  10. Der Betrieb muss eine Stellungnahme abgeben ... Im Prinzip kann man davon ausgehen, dass wenn sowohl Betrieb als auch Schule den Antrag auf vorgezogene Abschlußprüfung befürworten, dem Antrag auch stattgegeben wird und wenn beide den Antrag nicht befürworten, dieser wahrscheinlich abgelehnt wird. Wenn nun nur einer (Schule oder Betrieb) zustimmt, der andere aber ablehnt, dann entscheidet letztlich wie bereits gesagt der Prüfungsausschuß.
  11. Das wird nicht vom Betrieb entschieden, sondern vom Prüfungsausschuß. Hierzu müssen vom Betrieb und von der Berufsschule Stellungnahmen abgegeben werden. Möglicherweise gibt es im Detail der Durchführung Unterschiede zwischen einzelnen Kammern. Aber letztlich entscheidet der Prüfungsausschuß, also hat es der Betrieb vermutlich geschafft, ihm den Antrag aus zu reden. Gruß Reinhold
  12. Wie von anderen bereits gesagt nur wenn der Betrieb einverstanden ist. Und auch das nur vom Betrieb, der sich das reichlich überlegens sollte.
  13. Reinhold

    logischer Datentyp

    Es ging ja hier um Datenbanken. Ich kenne persönlich keine Datenbank, die bei "Insert into tabelle (logo) values (true)" irgendetwas anderes als 1 abspeichert.
  14. Reinhold

    logischer Datentyp

    JA
  15. Reinhold

    Skriptsprachen

    GUCKST DU HIER ! und frohes neues Jahr Reinhold
  16. Reinhold

    Com-Port ansprechen

    Bei Access wäre es FAQ 8.2 und das auch schon bei Access 97. Vielleicht kannst du dir so etwas hinwurschteln. hollaröhdulljöh Reinhold
  17. Da du es ins C++ - Forum gestellt hast, nehme ich an, dass es sich um spezielle Dateien handelt. Überleg dir gut, ob es zu Problemen kommen kann, wenn du nicht jedesmal komplett kopierst. Bei Dateien aus Warenwirtschaft, Buchhaltung, Produktionsplanung, etc. kann das nämlich ins Auge gehn. hollaröhdulljöh Reinhold
  18. Der Fehler wird seit Jahren in der Access-FAQ beschrieben: Donkarl: FAQ 7.3 Gruß Reinhold
  19. Falls es sich um Bewerber um einen Ausbildungsplatz handelt finde ich das sehr fragwürdig. Müssen Auszubildende denn vor der Ausbildung schon den Stoff beherrschen?
  20. Ich weiß, es ist nicht präzise die Antwort auf deine Frage, aber lies doch mal FAQ 1.27 hollaröhdulljöh Reinhold
  21. Reinhold

    nächste Nummer

    <dummguck>Bitte benachrichtigt mich, wenn jemand die Frage verstanden hat!</dummguck>
  22. Ich tippe auf FAQ 4.1
  23. Vorschlag: am Anfang anpassen: <?php $all = "ALLE Systeme (Aktive / Inaktive)"; $activ = "AKTIVE Systeme"; $inactiv = "INAKTIVE Systeme"; // Obacht, jetzt kummts if (isset($_POST["systeme"])) $sys = $_POST["systeme"; else $sys = $all; ?> [/PHP] und später dann stattdessen [PHP] switch ($sys){ ?> hollaröhdulljöh Reinhold

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...