{"id":560,"date":"2018-06-25T22:55:41","date_gmt":"2018-06-25T20:55:41","guid":{"rendered":"https:\/\/sql.marcus-belz.de\/?p=560"},"modified":"2020-05-09T01:59:34","modified_gmt":"2020-05-08T23:59:34","slug":"kommentierung-eines-komplexen-sql-statements","status":"publish","type":"post","link":"https:\/\/sql.marcus-belz.de\/?p=560","title":{"rendered":"Kommentierung eines komplexen SQL Statements"},"content":{"rendered":"<h2>\u00dcberblick<\/h2>\n<p>\u00dcber die Notwendigkeit und den Sinn von Dokumentation besteht weitestgehend Einigkeit, und dennoch f\u00e4llt diese Aufgabe dem Projektdruck in der Regel als erstes zum Opfer: \u201eMan m\u00f6ge doch in den Quellcode schauen, um zu verstehen, was eine Software oder ein SQL Statement macht.\u201c Dieser Satz ist oft zu h\u00f6ren. Nicht jeder ist dazu in der Lage, Quellcode und\/oder SQL Statements zu lesen. Dokumentation richtet sich schlie\u00dflich nicht nur an Entwickler, sondern auch Projektmanager, den Fachbereich, das Management. Der eigentliche Grund aber f\u00fcr das h\u00e4ufige Fehlen einer Dokumentation oder eine unzureichende Dokumentation ist, dass es eine unbeliebte Aufgabe ist.<\/p>\n<p>Eine besondere Form der Dokumentation ist die Inline Kommentierung (Inline Dokumentation) von Quellcode und SQL Statements. Sie ist quasi das Netz und der doppelte Boden f\u00fcr die Dokumentation. Fehlt auch die Inline Dokumentation, dann ist eine Anwendung nicht mehr wartbar, wenn das Wissen in den K\u00f6pfen der Entwickler nicht mehr vorhanden ist.<\/p>\n<p>Zum Zeitpunkt der Entwicklung mag die Entwicklerin alle wesentlichen Fragen f\u00fcr die Entwicklung des Statements gekl\u00e4rt und im Kopf haben. Dieses Wissen ist allerdings fl\u00fcchtig. Bereits nach wenigen Wochen f\u00e4llt es ihr bereits schwer, komplexe Statements nachzuvollziehen. Problematischer stellt sich die Situation in einem Mehrentwicklerprojekt dar.<\/p>\n<p>Nur eine ausreichende Inline Dokumentation unterst\u00fctzt (andere) Entwickler, eine Aufgabe und den eingeschlagenen L\u00f6sungsweg zu erfassen.<\/p>\n<p>Dieser Artikel enth\u00e4lt einige Denkanst\u00f6\u00dfe f\u00fcr die Umsetzung von inline Dokumentation.<\/p>\n<h2>Arten der Inline-Kommentare<\/h2>\n<p>T-SQL kennt Arten von Inline Kommentaren:<\/p>\n<ul>\n<li>Zeilenbasierte Kommentare<\/li>\n<li>Block Kommentare<\/li>\n<\/ul>\n<p>Zeilenbasierte Kommentare werde mit zwei aufeinander folgenden Bindestrichen eingeleitet und markieren den gesamten folgenden Text auf der rechten Seite der Bindestriche als Kommentar. Die Bindestriche k\u00f6nnen an jeder beliebigen Stelle in einer Zeile eingef\u00fcgt werden.<\/p>\n<pre style=\"padding-left: 40px;\">-- Inline Kommentar<\/pre>\n<p>Bei einem Text, der sich \u00fcber mehrere Zeilen erstreckt, sind damit vor jede Zeile die einleitenden Bindestriche zu notieren. Bei zahlreichen zu kommentierenden Zeilen ist das nat\u00fcrlich mit Aufwand verbunden.<\/p>\n<p>Auf der anderen Seite k\u00f6nnen mehrere Zeilen sehr einfach als Block-Kommentar kommentiert werden. Block Kommentare werden durch einen Schr\u00e4gstrich gefolgt von einem Stern eingeleitet und einem Stern gefolgt von einem Schr\u00e4gstrich abgeschlossen. Die einleitende und abschlie\u00dfende Sequenz k\u00f6nnen an beliebigen Stellen im Code verwendet werden.<\/p>\n<pre style=\"padding-left: 40px;\">\/*\nBlock Kommentar\n*\/<\/pre>\n<p>Wie so oft\u2026 auch \u00fcber die Verwendung der einen oder anderen Kommentar-Funktion wird unter Entwicklern viel diskutiert.<\/p>\n<p>Ich bevorzuge trotz des vermeintlichen Mehraufwandes f\u00fcr die Erstellung der einleitenden Zeichen Sequenz die zeilenbasierte Kommentierungsfunktion. Grund hierf\u00fcr ist, dass die einleitende Sequenz gerade bei Texten, die sich \u00fcber mehrere Zeilen erstrecken, einen Kommentar klar als solchen von dem Rest eines Statements abgrenzen. Zus\u00e4tzlich kann man die Kommentar-Sequenz auch als strukturierendes Element in einem komplexen Statement verwenden.<\/p>\n<p>Bei geschickter Verwendung des Spalteneditors ist der Mehraufwand f\u00fcr die Verwendung der einleitenden Bindestriche minimal. Der Spalteneditor erm\u00f6glicht die Erweiterung des Cursors \u00fcber mehrere Zeilen. Texteingaben werden auf alle Zeilen, \u00fcber die sich der Cursor erstreckt, angewendet und es k\u00f6nnen gleich mehrere Zeilen auf einmal aus- oder auch wieder einkommentiert werden. Siehe hierzu auch <strong>Funktionale Design (\u00c4sthetik) von SQL<\/strong>.<\/p>\n<p>Hilfreiche Tastenkombination sind hier \u00fcbrigens die Tastenkombination <strong>Strg+K+C<\/strong> (mit <strong>C<\/strong> f\u00fcr <strong>Comment<\/strong>) und <strong>Strg+K+U<\/strong> (mit <strong>U<\/strong> f\u00fcr <strong>Uncomment<\/strong>). Die erste Tastenkombination kommentiert die Zeilen, \u00fcber die sich die aktuelle Selektion erstreckt. Die zweite Tastenkombination hebt die Kommentierung wieder auf.<\/p>\n<h2>Beispiele<\/h2>\n<p>Dieses Kapitel gibt drei Beispiele f\u00fcr die Verwendung der Inline Dokumentation und m\u00f6chte die Vor- und Nachteile der jeweiligen Technik aufzeigen:<\/p>\n<ul>\n<li>Keine einheitliche Inline Dokumentation<\/li>\n<li>Parallele Inline Dokumentation<\/li>\n<li>Vorlage f\u00fcr Inline Dokumentation mit Kommentaren<\/li>\n<\/ul>\n<h3>Keine einheitliche Inline Dokumentation<\/h3>\n<p>Das nachfolgende Beispiel zeigt eine Inline Dokumentation, wie sie vermutlich h\u00e4ufig anzutreffen ist. Es gibt keine einheitliche Verwendung der Kommentierungs-Funktionen, keine einheitliche Einr\u00fcckung der Kommentare und alle Kommentare erstrecken sich auf die vollst\u00e4ndige Zeile. Dieses mittelkomplexe Statement ist \u2013 trotz guter Formatierung des eigentlichen Statements \u2013 wegen der unstrukturierten Inline Dokumentation nur schwer zu lesen. Die Komplexit\u00e4t des SQL-Statements liegt in der Verwendung einer rekursiven Common Table Expression (CTE) und der entsprechenden Dokumentation dieses Features bzw. seiner Verwendung. Das Statement kann in der Datenbank AdventureWorksDW2017 ausgef\u00fchrt werden.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-581 size-large\" src=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png\" alt=\"\" width=\"457\" height=\"1024\" srcset=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png 457w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-134x300.png 134w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001.png 614w\" sizes=\"auto, (max-width: 457px) 100vw, 457px\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001.txt\" target=\"_blank\" rel=\"noopener noreferrer\">Source<\/a><\/p>\n<h3>Parallele Inline-Dokumentation<\/h3>\n<p>Das exakt gleiche Statement ist in dem folgenden Beispiel mit einer parallelen Inline Dokumentation \u00fcberarbeitet worden. Die parallele Inline Dokumentation zeichnet sich dadurch aus, dass rechts hinter dem Statement ein Block f\u00fcr die Inline Dokumentation vorgesehen ist und dieser durch die Verwendung der zeilenbasierten Kommentierungszeichenfolge (doppeltes Minus) eingerichtet wird. Die Kommentierungszeichenfolgen werden \u00fcber alle Zeilen linksb\u00fcndig ausgerichtet.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-large wp-image-577\" src=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002-1011x1024.png\" alt=\"\" width=\"1011\" height=\"1024\" srcset=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002.png 1011w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002-296x300.png 296w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002-768x778.png 768w\" sizes=\"auto, (max-width: 1011px) 100vw, 1011px\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130002.txt\" target=\"_blank\" rel=\"noopener noreferrer\">Source<\/a><\/p>\n<p>Einige Eigenschaften dieser Variante lassen sich wie folgt benennen:<\/p>\n<ul>\n<li>Das SQL- Statements ist kompakt und zeichnet sich durch eine gute Lesbarkeit aus.<\/li>\n<li>Die Inline-Kommentare\/Dokumentation unterbrechen nicht das SQL-Statement und behindern daher nicht die Lesbarkeit und Verst\u00e4ndlichkeit.<\/li>\n<li>Besteht ein direkter Bezug zwischen dem Code und dem Kommentar in der gleichen Zeile, kann dieser Bezug durch eine vorangestellte Zeichensequenz kenntlich gemacht werden (z.B. <strong>&gt;&gt;<\/strong>).<\/li>\n<li>L\u00e4ngere Kommentare sollten \u00fcber Spiegelpunkte strukturiert gegliedert und nicht als Flie\u00dftext eingef\u00fcgt werden. Als Spiegelpunkt-Zeichen kann das Hash-Zeichen (<strong>#<\/strong>) verwendet werden.<\/li>\n<li>Die L\u00e4nge eines Kommentares sollte nicht zu lang sein, um zu vermeiden, dass der Entwickler zum Lesen der Kommentare \u00fcberm\u00e4\u00dfig horizontal navigieren muss. L\u00e4ngere Kommentare sind umzubrechen und linksb\u00fcndig zu der vorigen Zeile einzur\u00fccken. Die horizontale Navigation ist ungleich schwerer durchzuf\u00fchren als die vertikale Navigation \u00fcber das <strong>Mausrad<\/strong> oder die <strong>Bild auf<\/strong>&#8211; und <strong>Bild ab<\/strong>-Tasten.<\/li>\n<\/ul>\n<h3>Vorlage f\u00fcr Inline-Dokumentation mit Kommentaren<\/h3>\n<p>In dem folgenden Beispiel wurden die wesentlichen Eigenschaften der Inline Dokumentation aus dem zweiten Beispiel als Kommentar eingef\u00fcgt.<\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003.png\" target=\"_blank\" rel=\"noopener noreferrer\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-579 size-full\" src=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003.png\" alt=\"\" width=\"945\" height=\"768\" srcset=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003.png 945w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003-300x244.png 300w, https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003-768x624.png 768w\" sizes=\"auto, (max-width: 945px) 100vw, 945px\" \/><\/a><\/p>\n<p style=\"padding-left: 30px;\"><a href=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130003.txt\" target=\"_blank\" rel=\"noopener noreferrer\">Source<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00dcberblick \u00dcber die Notwendigkeit und den Sinn von Dokumentation besteht weitestgehend Einigkeit, und dennoch f\u00e4llt diese Aufgabe dem Projektdruck in der Regel als erstes zum Opfer: \u201eMan m\u00f6ge doch in den Quellcode schauen, um zu verstehen, was eine Software oder <a href=\"https:\/\/sql.marcus-belz.de\/?p=560\" class=\"read-more\">Read More &#8230;<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4,5],"tags":[11,8,14,10],"class_list":["post-560","post","type-post","status-publish","format-standard","hentry","category-all-languages","category-german","tag-column-editor","tag-format","tag-multi-developer-environment","tag-t-sql"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.4 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Kommentierung eines komplexen SQL Statements - Just another SQL blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/sql.marcus-belz.de\/?p=560\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Kommentierung eines komplexen SQL Statements - Just another SQL blog\" \/>\n<meta property=\"og:description\" content=\"\u00dcberblick \u00dcber die Notwendigkeit und den Sinn von Dokumentation besteht weitestgehend Einigkeit, und dennoch f\u00e4llt diese Aufgabe dem Projektdruck in der Regel als erstes zum Opfer: \u201eMan m\u00f6ge doch in den Quellcode schauen, um zu verstehen, was eine Software oder Read More ...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/sql.marcus-belz.de\/?p=560\" \/>\n<meta property=\"og:site_name\" content=\"Just another SQL blog\" \/>\n<meta property=\"article:published_time\" content=\"2018-06-25T20:55:41+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-05-08T23:59:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png\" \/>\n<meta name=\"author\" content=\"marcus\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"marcus\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560\"},\"author\":{\"name\":\"marcus\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\"},\"headline\":\"Kommentierung eines komplexen SQL Statements\",\"datePublished\":\"2018-06-25T20:55:41+00:00\",\"dateModified\":\"2020-05-08T23:59:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560\"},\"wordCount\":933,\"image\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sql.marcus-belz.de\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/post00130001-457x1024.png\",\"keywords\":[\"Column Editor\",\"Format\",\"Multi Developer Environment\",\"T-SQL\"],\"articleSection\":[\"All Languages\",\"German\"],\"inLanguage\":\"de\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560\",\"name\":\"Kommentierung eines komplexen SQL Statements - Just another SQL blog\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/sql.marcus-belz.de\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/post00130001-457x1024.png\",\"datePublished\":\"2018-06-25T20:55:41+00:00\",\"dateModified\":\"2020-05-08T23:59:34+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#primaryimage\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/post00130001.png\",\"contentUrl\":\"https:\\\/\\\/sql.marcus-belz.de\\\/wp-content\\\/uploads\\\/2018\\\/07\\\/post00130001.png\",\"width\":614,\"height\":1376},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?p=560#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/sql.marcus-belz.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Kommentierung eines komplexen SQL Statements\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#website\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/\",\"name\":\"Just another SQL blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/sql.marcus-belz.de\\\/#\\\/schema\\\/person\\\/7b46a383907dc48ca44fae32ceb24744\",\"name\":\"marcus\",\"url\":\"https:\\\/\\\/sql.marcus-belz.de\\\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Kommentierung eines komplexen SQL Statements - Just another SQL blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/sql.marcus-belz.de\/?p=560","og_locale":"de_DE","og_type":"article","og_title":"Kommentierung eines komplexen SQL Statements - Just another SQL blog","og_description":"\u00dcberblick \u00dcber die Notwendigkeit und den Sinn von Dokumentation besteht weitestgehend Einigkeit, und dennoch f\u00e4llt diese Aufgabe dem Projektdruck in der Regel als erstes zum Opfer: \u201eMan m\u00f6ge doch in den Quellcode schauen, um zu verstehen, was eine Software oder Read More ...","og_url":"https:\/\/sql.marcus-belz.de\/?p=560","og_site_name":"Just another SQL blog","article_published_time":"2018-06-25T20:55:41+00:00","article_modified_time":"2020-05-08T23:59:34+00:00","og_image":[{"url":"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png","type":"","width":"","height":""}],"author":"marcus","twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"marcus","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/sql.marcus-belz.de\/?p=560#article","isPartOf":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560"},"author":{"name":"marcus","@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744"},"headline":"Kommentierung eines komplexen SQL Statements","datePublished":"2018-06-25T20:55:41+00:00","dateModified":"2020-05-08T23:59:34+00:00","mainEntityOfPage":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560"},"wordCount":933,"image":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560#primaryimage"},"thumbnailUrl":"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png","keywords":["Column Editor","Format","Multi Developer Environment","T-SQL"],"articleSection":["All Languages","German"],"inLanguage":"de"},{"@type":"WebPage","@id":"https:\/\/sql.marcus-belz.de\/?p=560","url":"https:\/\/sql.marcus-belz.de\/?p=560","name":"Kommentierung eines komplexen SQL Statements - Just another SQL blog","isPartOf":{"@id":"https:\/\/sql.marcus-belz.de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560#primaryimage"},"image":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560#primaryimage"},"thumbnailUrl":"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001-457x1024.png","datePublished":"2018-06-25T20:55:41+00:00","dateModified":"2020-05-08T23:59:34+00:00","author":{"@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744"},"breadcrumb":{"@id":"https:\/\/sql.marcus-belz.de\/?p=560#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/sql.marcus-belz.de\/?p=560"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/sql.marcus-belz.de\/?p=560#primaryimage","url":"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001.png","contentUrl":"https:\/\/sql.marcus-belz.de\/wp-content\/uploads\/2018\/07\/post00130001.png","width":614,"height":1376},{"@type":"BreadcrumbList","@id":"https:\/\/sql.marcus-belz.de\/?p=560#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/sql.marcus-belz.de\/"},{"@type":"ListItem","position":2,"name":"Kommentierung eines komplexen SQL Statements"}]},{"@type":"WebSite","@id":"https:\/\/sql.marcus-belz.de\/#website","url":"https:\/\/sql.marcus-belz.de\/","name":"Just another SQL blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/sql.marcus-belz.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/sql.marcus-belz.de\/#\/schema\/person\/7b46a383907dc48ca44fae32ceb24744","name":"marcus","url":"https:\/\/sql.marcus-belz.de\/?author=1"}]}},"_links":{"self":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/560","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=560"}],"version-history":[{"count":10,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions"}],"predecessor-version":[{"id":950,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=\/wp\/v2\/posts\/560\/revisions\/950"}],"wp:attachment":[{"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=560"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=560"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/sql.marcus-belz.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=560"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}