概念モデル正規関数と 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 |