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

03/04/2011

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

שייך לקטגוריה: 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 של התגובות על הרשומה הזו טרקבאק קישור

כתיבת תגובה

Fill in your details below or click an icon to log in:

WordPress.com Logo

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

Twitter picture

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

Facebook photo

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

Connecting to %s

ערכת עיצוב: Shocking Blue Green. בלוג בוורדפרס.קום.

Follow

Get every new post delivered to your Inbox.

הצטרפו אל 25 שכבר עוקבים אחריו