概念モデル正規関数と SQL Server 関数とのマッピング

このトピックでは、概念モデル正規関数を対応する SQL Server 関数にマップする方法について説明します。

日付と時刻関数

日付と時刻の関数のマッピングを次の表に示します。

正規関数 SQL Server 関数
AddDays(expression) DATEADD(day, number, date)
AddHours(expression) DATEADD(hour, number, date)
AddMicroseconds(expression) DATEADD(microsecond, number, date)
AddMilliseconds(expression) DATEADD(millisecond, number, date)
AddMinutes(expression) DATEADD(minute, number, date)
AddMonths(expression) DATEADD(month, number, date)
AddNanoseconds(expression) DATEADD(nanosecond, number, date)
AddSeconds(expression) DATEADD(second, number, date)
AddYears(expression) DATEADD(year, number, date)
CreateDateTime(year, month, day, hour, minute, second) SQL Server 2000 と SQL Server 2005 の場合、書式指定された datetime 値がサーバー上に作成されます。 SQL Server 2008 以上の場合、datetime2 値がサーバー上に作成されます。
CreateDateTimeOffset(year, month, day, hour, minute, second, tzoffset) 書式指定された datetimeoffset 値がサーバー上に作成されます。

SQL Server 2000 と SQL Server 2005 ではサポートされません。
CreateTime(hour, minute, second) 書式指定された time 値がサーバー上に作成されます。

SQL Server 2000 と SQL Server 2005 ではサポートされません。
CurrentDateTime() SysDateTime() (SQL Server 2008)。

GetDate() (SQL Server 2000 および SQL Server 2005)。
CurrentDateTimeOffset() SysDateTimeOffset() (SQL Server 2008)。

SQL Server 2000 と SQL Server 2005 ではサポートされません。
CurrentUtcDateTime() SysUtcDateTime() (SQL Server 2008)。 GetUtcDate() (SQL Server 2000 および SQL Server 2005)。
DayOfYear(expression) DatePart(dayofyear, expression)
Day(expression) DatePart(day, expression)
DiffDays(startExpression, endExpression) DATEDIFF(day, startdate, enddate)
DiffHours(startExpression, endExpression) DATEDIFF(hour, startdate, enddate)
DiffMicroseconds(startExpression, endExpression) DATEDIFF(microsecond, startdate, enddate)
DiffMilliseconds(startExpression, endExpression) DATEDIFF(millisecond, startdate, enddate)
DiffMinutes(startExpression, endExpression) DATEDIFF(minute, startdate, enddate)
DiffNanoseconds(startExpression, endExpression) DATEDIFF(nanosecond, startdate, enddate)
DiffSeconds(startExpression, endExpression) DATEDIFF(second, startdate, enddate)
DiffYears(startExpression, endExpression) DATEDIFF(year, startdate, enddate)
GetTotalOffsetMinutes(DateTimeOffset) DatePart(tzoffset, expression)
Hour(expression) DatePart(hour, expression)
Millisecond(expression) DatePart(millisecond, expression)
Minute(expression) DatePart(minute, expression)
Month(expression) DatePart(month, expression)
Second(expression) DatePart(second, expression)
Truncate(expression) SQL Server 2000 と SQL Server 2005 の場合、切り詰められ、書式設定された datetime 値がサーバー上に作成されます。 SQL Server 2008 以降のバージョンの場合、切り詰められた datetime2 値か datetimeoffset 値がサーバー上に作成されます。
Year(expression) DatePart(YEAR, expression)

集計関数

集計関数のマッピングを次の表に示します。

正規関数 SQL Server 関数
Avg(expression) AVG(expression)
BigCount(expression) BIGCOUNT(expression)
Count(expression) COUNT(expression)
Min(expression) MIN(expression)
Max(expression) MAX(expression)
StDev(expression) STDEV(expression)
StDevP(expression) STDEVP(expression)
Sum(expression) SUM(expression)
Var(expression) VAR(expression)
VarP(expression) VARP(expression)

数学関数

数学関数のマッピングを次の表に示します。

正規関数 SQL Server 関数
Abs(value) ABS(value)
Ceiling(value) CEILING(value)
Floor(value) FLOOR(value)
Power(value) POWER(value, exponent)
Round(value) ROUND(value, digits, 0)
Truncate ROUND(value , digits, 1)

文字列関数

文字列関数のマッピングを次の表に示します。

正規関数 SQL Server 関数
Contains(string, target) CHARINDEX(target, string)
Concat(string1, string2) string1 + string2
EndsWith(string, target) CHARINDEX(REVERSE(target), REVERSE(string)) = 1

メモstring が固定長文字列の列に格納されており、target が定数である場合、CHARINDEX 関数は false を返します。 この場合、末尾の埋め込み空白も含めて文字列全体が検索されます。 この問題を回避するには、データを固定長文字列の長さに合わせて切り詰めてから、文字列を EndsWith 関数に渡します。たとえば、EndsWith(TRIM(string), target) のように指定します。
IndexOf(target, string2) CHARINDEX(target, string2)
Left (string1, length) LEFT(string1, length)
Length (string) LEN(string)
LTrim(string) LTRIM(string)
Right (string1, length) RIGHT (string1, length)
Trim(string) LTRIM(RTRIM(string))
Replace (string1, string2, string3) REPLACE(string1, string2, string3)
Reverse (string) REVERSE (string)
RTrim(string) RTRIM(string)
StartsWith(string, target) CHARINDEX(target, string)
Substring(string, start, length) SUBSTRING(string, start, length)
ToLower(string) LOWER(string)
ToUpper(string) UPPER(string)

ビット単位の関数

ビット単位の関数のマッピングを次の表に示します。

正規関数 SQL Server 関数
BitWiseAnd (value1, value2) value1 & value2
BitWiseNot (value) ~value
BitWiseOr (value1, value2) value1 | value2
BitWiseXor (value1, value2) value1 ^ value2