<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://www.dotnetzone.gr:443/cs/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>SQL Server (και άλλες databases)</title><link>https://www.dotnetzone.gr:443/cs/forums/28/ShowForum.aspx</link><description>Θέματα που αφορούν τον SQL Server (7.0, 2000, 2005) αλλά και Oracle, Access, DB2, MySQL, κλπ.</description><dc:language>el</dc:language><generator>CommunityServer 2.1 SP3 (Build: 20423.1)</generator><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13434.aspx</link><pubDate>Mon, 29 May 2006 17:13:05 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13434</guid><dc:creator>vales</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13434.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13434</wfw:commentRss><description>Σας ευχαριστω για την βοηθεια σας.&lt;br /&gt;
&lt;br /&gt;
το τι προσπαθω να κανω ειναι να ελεγχω αν ειναι Null και αν ειναι το αντικαταστω με τιμη καποιου αλλου πεδιου που πρεπει να πω οτι το ISNULL δουλεψε :)</description></item><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13395.aspx</link><pubDate>Sat, 27 May 2006 23:46:22 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13395</guid><dc:creator>Παναγιώτης Καναβός</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13395.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13395</wfw:commentRss><description>&lt;P&gt;Εξαρτάται τί προσπαθείς να κάνεις. Και οι δύο λύσεις είναι καλές για διαφορετικές χρήσεις. &lt;BR&gt;Η COALESCE σου επιτρέπει να επιστρέψεις μια δικιά σου τιμή όταν το πεδίο που ελέγχεις είναι NULL. Αυτό είναι πολύ χρήσιμο σε ένα SELECT για να επιστρέψεις μια default τιμή όταν το πεδίο που επιστρέφεις περιέχει NULLs:&lt;BR&gt;&amp;nbsp;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; CustomerName, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ISNULL&lt;/span&gt;(Address, &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'Unknown Address'&lt;/span&gt;) &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;From&lt;/span&gt; Customer&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Η ISNULLχρειάζεται προσοχή όμως όταν τη χρησιμοποιείς στο WHERE. Αν την εφαρμόσεις επάνω στο πεδίο που θέλεις να ψάξεις, η βάση δεν θα μπορέσει να εκμεταλλευτεί τα indexes που περιλαμβάνουν το συγκεκριμένο πεδίο. Αν, για παράδειγμα, γράψεις:&lt;BR&gt;&amp;nbsp;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; CustomerName &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; Customer &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WHERE&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ISNULL&lt;/span&gt;(City,&lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'Unknown City'&lt;/span&gt;)=@CityParam &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;AND&lt;/span&gt; Country=@CountryParam&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;η βάση θα πιάσει μία-μία τις εγγραφές που έχουν Country=@CountryParam και θα κάνει τον έλεγχο ISNULL(City,'Unknown City')=@CityParam . Άουτς!&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;Αντί για την COALESCE σε αυτή την περίπτωση θα ήταν καλύτερο να γράψεις&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; CustomerName &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; Customer &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WHERE&lt;/span&gt; (City=@CityParam &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;OR&lt;/span&gt; (City &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IS&lt;/span&gt; &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NULL&lt;/span&gt; &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;AND&lt;/span&gt; @CityParam &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IS&lt;/span&gt; &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NULL&lt;/span&gt;)) &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;AND&lt;/span&gt; Country=@CountryParam&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Ο λόγος για τον διπλό έλεγχο των NULL είναι ότι ένα NULL ΔΕΝ είναι ποτέ ίσο με NULL! Αυτό είναι μία από τις παραξενιές της SQL, όχι μόνο του SQL Server. Οποιαδήποτε σύγκριση γίνεται με NULL πρέπει να επιστρέφει NULL! &lt;/P&gt;
&lt;P&gt;Η CASE WHEN ... είναι μία άλλη επιλογή που σου επιτρέπει να κάνεις πολύ περισσότερα πράγματα. Το πρώτο statement θα μπορούσε να γραφτεί ως εξής:&lt;/P&gt;
&lt;P&gt;&lt;BR&gt;&amp;nbsp;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; CustomerName, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CASE&lt;/span&gt; &lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;WHEN&lt;/span&gt; Address &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;IS&lt;/span&gt; &lt;span style="color: Silver;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;NULL&lt;/span&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;THEN&lt;/span&gt; &lt;span style="color: Red;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;'Unknown Address'&lt;/span&gt;&lt;br /&gt;    &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ELSE&lt;/span&gt; Address&lt;br /&gt;        &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;END&lt;/span&gt; &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;CASE&lt;/span&gt;&lt;br /&gt; &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; Customer&lt;/span&gt;&lt;/P&gt;
&lt;P&gt;Αρχικά φαίνεται ότι γράφεις πολύ περισσότερο κώδικα από πριν. Από την άλλη, μπορείς να προσθέσεις πολλούς ελέγχους στο WHEN, όχι μόνο τον έλεγχο για NULL. Θα μπορούσες π.χ. να ελέγχεις περισσότερα από ένα πεδία για NULL και να επιστρέφεις κάποιο συνδυασμό τους. &lt;/P&gt;
&lt;P&gt;Η COALESCE συμπεριφέρεται περίπου όπως η ISNULL, με τη διαφορά ότι δέχεται σαν παραμέτρους πολλά πεδία και επιστρέφει το πρώτο από αυτά που περιέχει τιμή. &lt;/P&gt;
&lt;P&gt;&lt;STRONG&gt;Resources&lt;/STRONG&gt; τώρα. Η πρώτη πηγή σου θα πρέπει να είναι το documentation του SQL Server. Έχει πολύ καλεί δομή και αναλυτικές περιγραφές. Αν θέλεις κάτι στα γρήγορα, υπάρχει και το &lt;A href="http://www.sqlserverdirectory.com/sqlserver_articles.htm"&gt;http://www.sqlserverdirectory.com/sqlserver_articles.htm&lt;/A&gt; . Ίσως να σε ενδιαφέρει και το "&lt;A href="http://www.sommarskog.se/share_data.html"&gt;How to share data between stored procedures&lt;/A&gt;" του Erland Sommarskog.&amp;nbsp; Άλλο φοβερό blog είναι της Kimberly Tripp, "&lt;A href="http://www.sqlskills.com/blogs/kimberly/default.aspx"&gt;Improving *my* SQL skills through your questions&lt;/A&gt;". Η Tripp είναι μια από τις καλύτερες πηγές για θέματα SQL Server γενικά, και πολύ καλή ομιλήτρια! Άλλη καλή πηγή είναι ο &lt;A href="http://www.sql.co.il/"&gt;Itzik Ben-Gan,&lt;/A&gt; ο οποίος γράφει κάθε μήνα και στο &lt;A href="http://www.sqlmag.com/"&gt;SQL Server Magazine&lt;/A&gt;. Το οποίο είναι επίσης μια πολύ καλή πηγή. Είναι μάλιστα ένα από τα ελάχιστα επαγγελματικά περιοδικά που φέρνει ακόμα ο Παπασωτηρίου, οπότε μπορείς να το προμηθευτείς εύκολα.&lt;/P&gt;
&lt;P&gt;Τέλος υπάρχει και το &lt;A href="http://www.sswug.org/"&gt;SQL Server Worldwide Users Group &lt;/A&gt;το οποίο έχει άπειρα άρθρα και forums για SQL Server, Oracle, DB2, MySQL. Όλως "τυχαίως" εκεί θα βρεις και όσους ανέφερα παραπάνω.&lt;BR&gt;&lt;/P&gt;</description></item><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13383.aspx</link><pubDate>Sat, 27 May 2006 12:57:18 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13383</guid><dc:creator>γιωργος μπακογιαννης</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13383.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13383</wfw:commentRss><description>Υπάρχει και η: Case When .... Then ... Else .... End</description></item><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13357.aspx</link><pubDate>Fri, 26 May 2006 20:08:23 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13357</guid><dc:creator>akisk</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13357.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13357</wfw:commentRss><description>Υπάρχει και η: COALESCE(fieldname, 0.00)&lt;br&gt;</description></item><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13356.aspx</link><pubDate>Fri, 26 May 2006 19:19:09 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13356</guid><dc:creator>vales</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13356.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13356</wfw:commentRss><description>ευχαριστω.ειναι το ιδιο και για T-SQL</description></item><item><title>Απ: Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13352.aspx</link><pubDate>Fri, 26 May 2006 17:42:16 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13352</guid><dc:creator>kkara</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13352.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13352</wfw:commentRss><description>Στην PL-SQL υπάρχει η μέθοδος IsNULL, η οποία αντικαθιστά μια NULL τιμή με αυτή που θα δώσεις, π.χ. : &lt;br&gt;&lt;br&gt;&lt;span style="color: Black;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;SELECT&lt;/span&gt; title, type, &lt;span style="color: Fuchsia;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;ISNULL&lt;/span&gt;(price, 0.00) &lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;AS&lt;/span&gt; price&lt;br /&gt;&lt;span style="color: Blue;background-color: Transparent;font-family: Courier New;font-size: 11px;font-weight: normal;"&gt;FROM&lt;/span&gt; titles&lt;/span&gt;&lt;br&gt;&lt;br&gt;Το τμήμα αυτό, αν το column price είναι NULL το αντικαθιστά με 0.00. Το παράδειγμα είναι από τα Books Online τα οποία συνιστώ ανεπιφύλακτα για reference. Όσο για site ή άρθρα, νομίζω ότι οι υπόλοιποι μπορούν να δώσουν καλύτερα στοιχεία, αν και πάντα την καλύτερη λύση θα την δώσει το ... Google &lt;img src="/cs/emoticons/emotion-1.gif" alt="Smile [:)]" /&gt;&lt;br&gt;</description></item><item><title>Διαχειριση Null τιμων σε Stored Procedures</title><link>https://www.dotnetzone.gr:443/cs/forums/thread/13348.aspx</link><pubDate>Fri, 26 May 2006 17:05:57 GMT</pubDate><guid isPermaLink="false">2622095e-976c-431a-859e-16783ec7ecd7:13348</guid><dc:creator>vales</dc:creator><slash:comments>0</slash:comments><comments>https://www.dotnetzone.gr:443/cs/forums/thread/13348.aspx</comments><wfw:commentRss>https://www.dotnetzone.gr:443/cs/forums/commentrss.aspx?SectionID=28&amp;PostID=13348</wfw:commentRss><description>&lt;P&gt;Εχω ενα Query&amp;nbsp;που επιστρεφει Null τιμες σε stored proceudres&amp;nbsp;στον Sql server 2000 και θελω να τις ελεγχω στον sql server και να τις αντικαταστισω με κατι αλλο πριν να γεμισω το dataset μου με τις τιμες που θα επιστρεψει.Μπορει να γινει, και αν ναι πως.&lt;/P&gt;
&lt;P&gt;Επισης ξερετε καποιο καλο site για αρχαριους σε stored procedures ή κανα καλο αρθρo; &lt;/P&gt;
&lt;P&gt;Ευχαριστω&lt;/P&gt;</description></item></channel></rss>