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

12/02/2011

פונקציה המחזירה מספר ערכים

שייך לקטגוריה: Uncategorized — תגים: , , — גרי רשף @ 21:47

אני מעוניין בפונקציה שתקבל כפרמטר תאריך לידה,
ותחזיר את הגיל (מספר), יום הלידה בשבוע (טקסט), והיום הראשון בשנת הלידה (תאריך).
כיצד נעשה זאת?
פתרון- באמצעות Table-Valued Function שתחזיר טבלה בת רשומה אחת:

Create Function dbo.MyFunc(@D DateTime)

Returns Table

As

Return    (Select DateDiff(Year,@D,GetDate()) Age,

                DateAdd(Day,-DatePart(DayOfYear,@D)+1,@D) YearBegin,

                DateName(weekday,@D) WeekDay);

Go

ונשתמש בה למשל כך:

Declare    @Gil Int,

        @RosHashana DateTime,

        @Yom Varchar(Max);


Select    @Gil=Age,

        @RosHashana=YearBegin,

        @Yom=WeekDay

From    dbo.MyFunc('19600215');


Select    @Gil,

        @RosHashana,

        @Yom;

Go

image

מה החידוש כאן?

ניתן היה להחזיר טבלה בת שלוש רשומות ושני שדות (סוג ערך, ערך),

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

ומה שיותר גרוע- יהיה צורך בשלוש שליפות – אחת לכל משתנה..

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

להגיב »

אין תגובות.

פיד 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 שכבר עוקבים אחריו