<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic SQL בקיצור in SAS Users Group in Israel</title>
    <link>https://communities.sas.com/t5/SAS-Users-Group-in-Israel/SQL-%D7%91%D7%A7%D7%99%D7%A6%D7%95%D7%A8/m-p/698903#M157</link>
    <description>&lt;P class="lia-align-right" style="direction: rtl;"&gt;&lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=sqlproc&amp;amp;docsetTarget=titlepage.htm&amp;amp;locale=en" target="_self"&gt;PROC SQL&lt;/A&gt; ב – SAS מאפשר לנו להשתמש בשפת ה – SQL לשליפה ועיבוד של נתונים מכל בסיס נתונים שמבין SQL כמו למשל SQL Sever או אורקל כמו גם מטבלאות SAS. למעשה כאשר אנחנו משתמש ב – PROC SQL אנחנו אפילו לא צריכים לדעת מול איזה סוג של בסיס נתונים אנחנו עובדים. SAS מבצעת את ההמרה של קוד ה – SQL שלנו לניב הספציפי של בסיס הנתונים ברגע ההרצה כך שאותו קוד בדיוק שכתבנו לשליפת נתונים מאורקל יעבוד גם מול SQL Server או כל מערכת בסיס נתונים אחרת.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;למרות שחלק גדול מאיתנו לא כותבים קוד SQL ידנית אלא משתמשים בכלים כגון SAS Enterprise Guide שמייצרים אוטומטית את הקוד עבורנו מאחורי הקלעים, SAS כוללת כמה קיצורי דרך שימושים שמאפשרים לנו להיות יעילים יותר בעבודה. השבוע אציג שניים מהם – התייחסות לשדות מחושבים שיצרנו מבלי לחזור על החישוב שלהם בחישובים נוספים והיכולות להתייחס לעמודות ע"י המספר שלהן בפקודות ה - &amp;nbsp;group by וה – order by.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;היכולת לייצר שדה מחושב ב – SQL היא, כמובן, שימושית מאוד אבל לפעמים אנחנו רוצים להתייחס לשדה מחושב שיצרנו בשדה מחושב נוסף. הדרך הנאיבית היא פשוט לכתוב שוב את החישוב של השדה המחושב הראשון אבל החסרונות של שיטה זו ברורים – הרבה יותר כתיבה של קוד ופתח לשגיאות במקרה של צורך בשינוי החישובים.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;אם אנחנו כותבים SQL ב – SAS אנחנו יכולים לפתור את הבעיה הזו ע"י שימוש במילה השמורה &lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=sqlproc&amp;amp;docsetTarget=p1ju3u1ef9w6pln103et2l56rtsv.htm&amp;amp;locale=en#p16fi7250bq3aqn1lv5q9dqvjt9w" target="_self"&gt;calculated&lt;/A&gt; כדי להבהיר ל – SAS שאנחנו רוצים להתייחס בחישוב הנוכחי שלנו לשדה מחושב אחר בשאילתה שאנחנו בונים ולא לשדה קיים באחת מטבלאות המקור:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS as 
	select 
		name, 
		age,
		weight,
		height*height as Height2,
		(weight / calculated Height2)*703 as BMI
	from 
		SASHELP.CLASS;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;שימו לב שסדר הוספת השדות המחושבים בשאילתה חשוב, כלומר לא ניתן להתייחס לשדה מחושב שמופיע אחרי השדה שקורא לו. זה, למשל, לא יעבוד:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS as 
	select 
		name, 
		age,
		weight,
		(weight / calculated Height2)*703 as BMI,
		height*height as Height2
	from 
		SASHELP.CLASS;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;קיצור נוסף הוא האפשרות להתייחס לשדות בשאילתה שלנו ע"י המיקום שלהם בפקודת ה – select כאשר אנחנו צריכים להתייחס אליהם בפקודות ה – group by ו/או ה – order by:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS1 as 
	select 
		age, 
		sex,
		count(*) as Students 
	from 
		SASHELP.CLASS
	group by 
		1,2
	order by 
		3 desc;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;כאן אנחנו צריכים לשים לב שאם אנחנו מעדכנים את השאילתה שלנו ומשנים את סדר השדות ב – select או מוסיפים שדות חדשים שהמספרים עדיין מתייחסים לשדות שאנחנו רוצים להתייחס אליהם.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;תודה לאשתי על הרעיון למאמר השבוע *&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;אם יש לכם רעיונות/בקשות למאמרים עתידיים אשמח לשמוע בהערות.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;חגי&lt;/P&gt;</description>
    <pubDate>Sat, 14 Nov 2020 19:24:01 GMT</pubDate>
    <dc:creator>Hagay</dc:creator>
    <dc:date>2020-11-14T19:24:01Z</dc:date>
    <item>
      <title>SQL בקיצור</title>
      <link>https://communities.sas.com/t5/SAS-Users-Group-in-Israel/SQL-%D7%91%D7%A7%D7%99%D7%A6%D7%95%D7%A8/m-p/698903#M157</link>
      <description>&lt;P class="lia-align-right" style="direction: rtl;"&gt;&lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=sqlproc&amp;amp;docsetTarget=titlepage.htm&amp;amp;locale=en" target="_self"&gt;PROC SQL&lt;/A&gt; ב – SAS מאפשר לנו להשתמש בשפת ה – SQL לשליפה ועיבוד של נתונים מכל בסיס נתונים שמבין SQL כמו למשל SQL Sever או אורקל כמו גם מטבלאות SAS. למעשה כאשר אנחנו משתמש ב – PROC SQL אנחנו אפילו לא צריכים לדעת מול איזה סוג של בסיס נתונים אנחנו עובדים. SAS מבצעת את ההמרה של קוד ה – SQL שלנו לניב הספציפי של בסיס הנתונים ברגע ההרצה כך שאותו קוד בדיוק שכתבנו לשליפת נתונים מאורקל יעבוד גם מול SQL Server או כל מערכת בסיס נתונים אחרת.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;למרות שחלק גדול מאיתנו לא כותבים קוד SQL ידנית אלא משתמשים בכלים כגון SAS Enterprise Guide שמייצרים אוטומטית את הקוד עבורנו מאחורי הקלעים, SAS כוללת כמה קיצורי דרך שימושים שמאפשרים לנו להיות יעילים יותר בעבודה. השבוע אציג שניים מהם – התייחסות לשדות מחושבים שיצרנו מבלי לחזור על החישוב שלהם בחישובים נוספים והיכולות להתייחס לעמודות ע"י המספר שלהן בפקודות ה - &amp;nbsp;group by וה – order by.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;היכולת לייצר שדה מחושב ב – SQL היא, כמובן, שימושית מאוד אבל לפעמים אנחנו רוצים להתייחס לשדה מחושב שיצרנו בשדה מחושב נוסף. הדרך הנאיבית היא פשוט לכתוב שוב את החישוב של השדה המחושב הראשון אבל החסרונות של שיטה זו ברורים – הרבה יותר כתיבה של קוד ופתח לשגיאות במקרה של צורך בשינוי החישובים.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;אם אנחנו כותבים SQL ב – SAS אנחנו יכולים לפתור את הבעיה הזו ע"י שימוש במילה השמורה &lt;A href="https://documentation.sas.com/?cdcId=pgmsascdc&amp;amp;cdcVersion=9.4_3.5&amp;amp;docsetId=sqlproc&amp;amp;docsetTarget=p1ju3u1ef9w6pln103et2l56rtsv.htm&amp;amp;locale=en#p16fi7250bq3aqn1lv5q9dqvjt9w" target="_self"&gt;calculated&lt;/A&gt; כדי להבהיר ל – SAS שאנחנו רוצים להתייחס בחישוב הנוכחי שלנו לשדה מחושב אחר בשאילתה שאנחנו בונים ולא לשדה קיים באחת מטבלאות המקור:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS as 
	select 
		name, 
		age,
		weight,
		height*height as Height2,
		(weight / calculated Height2)*703 as BMI
	from 
		SASHELP.CLASS;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;שימו לב שסדר הוספת השדות המחושבים בשאילתה חשוב, כלומר לא ניתן להתייחס לשדה מחושב שמופיע אחרי השדה שקורא לו. זה, למשל, לא יעבוד:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS as 
	select 
		name, 
		age,
		weight,
		(weight / calculated Height2)*703 as BMI,
		height*height as Height2
	from 
		SASHELP.CLASS;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;קיצור נוסף הוא האפשרות להתייחס לשדות בשאילתה שלנו ע"י המיקום שלהם בפקודת ה – select כאשר אנחנו צריכים להתייחס אליהם בפקודות ה – group by ו/או ה – order by:&lt;/P&gt;
&lt;PRE&gt;&lt;CODE class=" language-sas"&gt;proc sql noprint;
	create table CLASS1 as 
	select 
		age, 
		sex,
		count(*) as Students 
	from 
		SASHELP.CLASS
	group by 
		1,2
	order by 
		3 desc;
quit;&lt;/CODE&gt;&lt;/PRE&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;כאן אנחנו צריכים לשים לב שאם אנחנו מעדכנים את השאילתה שלנו ומשנים את סדר השדות ב – select או מוסיפים שדות חדשים שהמספרים עדיין מתייחסים לשדות שאנחנו רוצים להתייחס אליהם.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;תודה לאשתי על הרעיון למאמר השבוע *&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;אם יש לכם רעיונות/בקשות למאמרים עתידיים אשמח לשמוע בהערות.&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;&amp;nbsp;&lt;/P&gt;
&lt;P class="lia-align-right" style="direction: rtl;"&gt;חגי&lt;/P&gt;</description>
      <pubDate>Sat, 14 Nov 2020 19:24:01 GMT</pubDate>
      <guid>https://communities.sas.com/t5/SAS-Users-Group-in-Israel/SQL-%D7%91%D7%A7%D7%99%D7%A6%D7%95%D7%A8/m-p/698903#M157</guid>
      <dc:creator>Hagay</dc:creator>
      <dc:date>2020-11-14T19:24:01Z</dc:date>
    </item>
  </channel>
</rss>

