הבלוג של גרי רשף

03/04/2011

סינון מספרים שלמים מטבלה

Filed under: Uncategorized — תגיות: — גרי רשף @ 17:21

הפתרון המתבקש מאליו לסינון מספרים שלמים מטבלה הוא להשוות אותם לערך השלם שלהם, ולהציג רק את אלו ששווים.
דוגמה מאין זו הופיעה בפוסט הזה:

DECLARE @TT TABLE (id int,

                salary Decimal(10,3));

                INSERT INTO @TT VALUES (1, 23.44);


INSERT INTO @TT VALUES (2, 21.00);

INSERT INTO @TT VALUES (3, 20.00);

INSERT INTO @TT VALUES (4, 53.30);

INSERT INTO @TT VALUES (5, 11.00);


SELECT   *

FROM     @TT

WHERE    ROUND(salary, 10)-FLOOR(ROUND(salary, 10))=0;

האם אפשר לעשות זאת "במכה אחת" בלי לעגל ולהשוות בין הערך לפני ואחרי?

DECLARE @TT TABLE (id int,

                salary Decimal(10,3));


INSERT INTO @TT VALUES (1, 23.44);

INSERT INTO @TT VALUES (2, 21.00);

INSERT INTO @TT VALUES (3, 20.00);

INSERT INTO @TT VALUES (4, 53.30);

INSERT INTO @TT VALUES (5, 11.00);


SELECT  *

FROM    @TT

WHERE   salary%1=0;

clip_image002

קצת יותר אלגנטי, ויעיל באותה מידה.

למען הגילוי הנאות עלי להודות שבדוגמה המקורית משתמשים ב-Float ולו לא ניתן לבצע מודולו 1, אלא רק לסוגי נתונים כמו Decimal או Money.

מודעות פרסומת

להגיב »

עדיין אין תגובות.

RSS feed for comments on this post. TrackBack URI

כתיבת תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s

יצירה של אתר חינמי או בלוג ב־WordPress.com.

%d בלוגרים אהבו את זה: