{"id":17,"date":"2008-09-04T20:00:00","date_gmt":"2008-09-04T18:00:00","guid":{"rendered":"http:\/\/csopro.de\/biblog\/2008\/09\/ssis-achtung-bei-gross-und-kleinschreibung-aggregate\/"},"modified":"2008-09-04T20:00:00","modified_gmt":"2008-09-04T18:00:00","slug":"ssis-achtung-bei-gross-und-kleinschreibung-aggregate","status":"publish","type":"post","link":"https:\/\/www.csopro.de\/biblog\/2008\/09\/ssis-achtung-bei-gross-und-kleinschreibung-aggregate\/","title":{"rendered":"SSIS: Achtung bei Gro\u00df- und Kleinschreibung &#8211; AGGREGATE"},"content":{"rendered":"<p>Der SQL-Server unterscheidet (im Standard) bei den Daten nicht zwischen Gro\u00df- und Kleinschreibung.<\/p>\n<p>Gerade f\u00fcr versierte SQL-Entwickler f\u00fchrt dies bei der Verwendung der Integration Services zu Schwierigkeiten, da Integration Services sehr wohl zwischen Gro\u00df- und Kleinschreibung unterscheidet. Somit verhalten sich SSIS-Transformationen leicht anders als ihre SQL-Pendants:<\/p>\n<p>Ich m\u00f6chte auf die SSIS-Transformationen Aggregation (Aggregate) und die Suche (Lookup) [im n\u00e4chsten Blog-Eintrag] eingehen:<\/p>\n<p>Zun\u00e4chst vergleiche ich die SSIS-Transformation Aggregate mit dem SQL-Befehl GROUP BY:<\/p>\n<p>Als Ausgangsdaten verwende ich die Tabelle Customers<img loading=\"lazy\" decoding=\"async\" height=\"145\" alt=\"Tabelle Customers\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2008\/10\/tabellecustomers.jpg\" width=\"252\" \/><\/p>\n<p>Damit liefert das SQL-Statement<\/p>\n<p><em>SELECT Country, count(*) as Anzahl<br \/>\n FROM Customers<br \/>\nGroup by Country<\/em><\/p>\n<p>folgendes Ergebnis (de=DE im SQL Server):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" height=\"114\" alt=\"Bild\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2008\/10\/bild.jpg\" width=\"99\" \/><\/p>\n<p>Die naheliegende SSIS-Transformation liefert aber (de &lt;&gt; DE im SSIS):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" height=\"313\" alt=\"Bild\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2008\/10\/bild-1.jpg\" width=\"464\" \/><\/p>\n<p>Hierbei habe ich das Standard-Verhalten der Tools dargestellt. Man kann aber in beiden Produkten ein gleiches Verhalten erzeugen:<\/p>\n<ul>\n<li>\n<div>Im SQL Server k\u00f6nnte man die Collation Spalte \u00e4ndern, so dass die Werte auch Gro\u00df- und Kleinschreibung unterscheidet, also zum Beispiel Latin1_General_CS_AS<br \/>\n<img loading=\"lazy\" decoding=\"async\" height=\"426\" alt=\"Bild\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2008\/10\/bild-2.jpg\" width=\"303\" \/><br \/>\nDiese \u00c4nderung betrifft nat\u00fcrlich die komplette Tabelle und somit alle Abfragen auf diese Tabelle!<\/div>\n<\/li>\n<li>\n<div>Wenn man nur diese eine Abfrage im SQL auf &#8222;Beachte Gro\u00df- und Kleinschreibung&#8220; setzen will, so kann man folgendes Statement verwenden:<br \/>\n<em>SELECT Country , count(*) as Anzahl<br \/>\n FROM (select country COLLATE Latin1_General_CS_AS as Country, CustomerName FROM Customers) as tab<br \/>\nGroup by Country<br \/><\/em>Ohne die Verwendung von Derived Tables (dem obigen &#8222;SubSelect&#8220;) bzw. Common Table Expressions geht es <strong>nicht<\/strong>. Ein Statement wie<br \/>\n<em>SELECT Country COLLATE Latin1_General_CS_AS, count(*) as Anzahl<br \/>\n FROM Customers<br \/>\nGroup by Country<br \/><\/em>liefert also immer noch 5 Zeilen.<\/div>\n<\/li>\n<li>\n<div>In der SSIS-Transformation Aggregate kann man einstellen, dass die Gro\u00df- und Kleinschreibung ignoriert werden soll:<br \/>\n<img loading=\"lazy\" decoding=\"async\" height=\"634\" alt=\"Bild\" src=\"https:\/\/www.csopro.de\/biblog\/wp-content\/uploads\/2008\/10\/bild-3.jpg\" width=\"321\" \/><\/div>\n<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Der SQL-Server unterscheidet (im Standard) bei den Daten nicht zwischen Gro\u00df- und Kleinschreibung. Gerade f\u00fcr versierte SQL-Entwickler f\u00fchrt dies bei der Verwendung der Integration Services zu Schwierigkeiten, da Integration Services sehr wohl zwischen Gro\u00df- und Kleinschreibung unterscheidet. Somit verhalten sich SSIS-Transformationen leicht anders als ihre SQL-Pendants: Ich m\u00f6chte auf die SSIS-Transformationen Aggregation (Aggregate) und die &hellip; <a href=\"https:\/\/www.csopro.de\/biblog\/2008\/09\/ssis-achtung-bei-gross-und-kleinschreibung-aggregate\/\" class=\"more-link\"><span class=\"screen-reader-text\">SSIS: Achtung bei Gro\u00df- und Kleinschreibung &#8211; AGGREGATE<\/span> weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[14,15],"class_list":["post-17","post","type-post","status-publish","format-standard","hentry","category-integrationservices","tag-aggregate","tag-gern-gemachte-fehler"],"_links":{"self":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/17","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/comments?post=17"}],"version-history":[{"count":0,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/posts\/17\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/media?parent=17"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/categories?post=17"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.csopro.de\/biblog\/wp-json\/wp\/v2\/tags?post=17"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}