[{"id":"9152b7ca-0186-4fe3-a26f-5a05f322db07","tags":[{"name":"新增","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63","links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80"}]},{"id":"3dc3dd55-35b0-4d23-bf62-47bc3650e4ee","tags":[{"name":"新增","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63","links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80"}]},{"id":"80d84fbc-d0f8-4e4a-947f-e3e4de9b49b2","tags":[{"name":"新增","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63","links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80"}]},{"id":"d5d9cdef-8854-4505-89be-a2bbc3cb4482","tags":[{"name":"新增","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63","links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80"}]},{"id":"840f0737-df1d-47ae-bb0a-359b01fe0608","tags":[{"name":"新增","color":"green","productId":"0995490e-43fc-4d6e-bc8d-8e66f38b0c63","links":null,"id":"adf72f47-7f61-4239-8392-b9bcc127fa80"}]}]
        
(Showing Draft Content)

附一 WynSql详解

1. 内容概述

原生SQL查询是指某类型数据源能够接受的文本形式的查询语句,例如使用Oracle数据源时应使用符合Oracle查询语法的查询语句。

如果您的数据源是Excel, Csv, Json, Xml, MongoDB, OData,由于这些数据源原生的查询语法标准和标准SQL语法相差较大,Wyn为您提供了WynSql语言进行查询。

2. WynSql

WynSql是为查询Excel, Csv, Json, Xml, MongoDB, OData数据源提供的SQL查询语言。

WynSql基本模拟了SQLite语法标准但有以下限制:

  1. 只能使用SELECT语句。

  2. GroupBy子句中不能使用表达式,只能使用列引用。

  3. OrderBy子句中不能使用表达式,只能使用列引用。

  4. 不能使用任何SQLite的内置函数,Wyn提供了自己的函数库。

type=info

使用SELECT 语句时可以添加Limit 子句限制返回的行数,例如select * from Demo_订单明细 limit 5。

3. WynSql函数库

注意

如果一个函数需要一个枚举值作为参数,请直接使用枚举值的字面值,不需要使用单/双引号。

例如StrLike(column1,'start%', Text)

函数

类型

语法

说明

Abs

数学

Abs(number)

获取指定数值(number)的绝对值.

Acos

数学

Acos(number)

获取余弦值为指定数值(number)的角度(以弧度为单位)。

Asin

数学

Asin(number)

获取正弦值为指定数值(number)的角度(以弧度为单位)。

Atan

数学

Atan(number)

获取切线为指定数值(number)的角度(以弧度为单位)。

Atn2

数学

Atn2(y, x)

获取其切线为指定数值(x和y)的商的角度(以弧度为单位)。

Ceiling

数学

Ceiling(number)

获取大于或等于指定数值(number)的最小整数。

Cos

数学

Cos(number)

获取指定角度的余弦值。

Cot

数学

Cot(number)

获取指定角度的三角余切值的角度(以弧度为单位)。

Degrees

数学

Degrees(radians)

获取以弧度指定的角度(radians)的角度(以度为单位)。

Exp

数学

Exp(number)

获取e的指定数值(number)的幂次方。

Floor

数学

Floor(number)

获取小于或等于指定十进制数(number)的最大整数。

Log

数学

Log(number)

获取(以e或指定数值newBase)为基数,指定数值(number)的自然对数。

Log10

数学

Log10(number)

获取以10为基数,指定数值(number)的自然对数。

PI

数学

PI()

获取表示圆的圆周与其直径的比率,由常数π指定。

Power

数学

Power(x, y)

获取指定数数值(x)的指定数值(y)的幂次方。

Radians

数学

Radians(degrees)

获取以度为指定数值表达式(degress)的数值(以弧度为单位)。

Rand

数学

Rand()

Rand(maxValue)

获取指定范围内的随机整数, 或者获取一个大于等于0.0且小于1.0的随机浮点数。

Round

数学

Round(number)

Round(number, digits)

获取将舍入为最接近的整数或指定的小数位数. 可用的MidpointRounding枚举值: ToEven, AwayFromZero。

Sign

数学

Sign(number)

获取一个数值符号(number)的整数。 -1:值小于零。 0:值等于零。 1:值大于零。

Sin

数学

Sin(number)

获取指定角度(number)的正弦值。

Sqrt

数学

Sqrt(number)

获取指定数值(number)的平方根。

Square

数学

Square(number)

获取指定数值(number)的平方。

Tan

数学

Tan(number)

获取指定角度(number)的正切值。

DateAdd

日期时间

DateAdd(EDatePart ddatepart, number, dateTime)

获取将指定数值(number)作为有符号整数值添加到输入日期值(dateTime)的指定日期部分所产生的日期时间值.。可用的EDatePart枚举值: Year, yyyy, yy, Quarter, qq, q, Month, mm, m, DayOfYear, dy, y Day, dd, d, WeekDay, dw, Week, ww, wk, Hour, hh, Minute, mi, n, Second, ss, s, MilliSecond, ms

DateDiff

日期时间

DateDiff(EDatePart datepart, dateTime1, dateTime2)

获取指定日期(dateTime1)和(dateTime2)之间指定时间间隔(datepart)的数值(作为有符号整数值)、可用的EDatePart枚举值: Year, yyyy, yy, Quarter, qq, q, Month, mm, m, DayOfYear, dy, y Day, dd, d, WeekDay, dw, Week, ww, wk, Hour, hh, Minute, mi, n, Second, ss, s, MilliSecond, ms

DateFromParts

日期时间

DateFromParts(year, month, day)

获取指定年(year),月(month)和日(day)的日期值。

DatePart

日期时间

DatePart(EDatePart datepart, dateTime)

获取指定日期(dateTime)的datepart的整数. 可用的EDatePart枚举值: Year, yyyy, yy, Quarter, qq, q, Month, mm, m, DayOfYear, dy, y Day, dd, d, WeekDay, dw, Week, ww, wk, Hour, hh, Minute, mi, n, Second, ss, s, MilliSecond, ms

EOMonth

日期时间

EOMonth(dateTime, [int addMonth = 0])

获取包含具有可选偏移量的指定日期(dateTime)的月份的最后一天。

GetDate

日期时间

GetDate()

获取当前系统时间戳,作为没有时区偏移的日期时间值。

GetUtcDate

日期时间

GetUTCDate()

获取当前系统时间戳,作为UTC日期时间值而没有时区偏移量。

Concat

文本

Concat([string1,string2...])

获取给定字符串(string1,string2...)连接在一起生成的字符串。

Format

文本

Format(value, format)

获取用指定格式(format)将指定值(value)格式化生成的字符串。

IndexOf

文本

IndexOf(value, search)

获取从开头或指定位置(startIndex)开始,获取给定字符串(value)中子字符串(search)的位置。

IsNull

文本

IsNull(value)

检查给定值(value)是否为null或DBNull;或者,如果指定值(value1)为null或DBNull,则获取备用值(value2)。

Left

文本

Left(value, length)

获得从给定的字符串(value)中获取长度为(lengh)的子字符串(从左开始)。

Len

文本

Len(value)

获取给定字符串(value)的长度。

Lower

文本

Lower(value)

获取将给定字符串(value)中的所有字符转换为小写生成的字符串。

LTrim

文本

LTrim(value)

获取从给定字符串(value)中删除所有前导空格生成的字符串。

Replace

文本

Replace(value, pattern, replacement)

获取用字符(replacement)替换给定字符串(value)中的字符序列(pattern)生成的字符串。

Replicate

文本

Replicate(value, times)

获取重复给定的字符串(value)指定的次数(times)生成的字符串。

Reverse

文本

REverse(value)

获取反转给定字符串(value)生成的字符串。

Right

文本

Right(value, length)

获得从给定的字符串(value)中获取长度为(lengh)的子字符串(从右开始)。

RTrim

文本

RTrim(value)

获取从给定字符串(value)中删除所有尾随空格生成的字符串。

SubString

文本

SubString(value, startIndex, length)

获取给定字符串(value)中从指定数值(startIndex)开始,提取长度为指定数值(length)子字符串。

ToString

文本

ToString(value)

获取给定对象(value)的字符串。

Trim

文本

Trim(value)

获取从给定字符串(value)中删除所有前导和尾随空格生成的字符串。

Upper

文本

Upper(value)

获取将给定字符串(value)中的所有字符转换为大写字母生成的字符串。

Array

混合

Array([object1,object2...])

获取给定对象(object1,object2...)创建的数组。

Category

混合

Category(value, RangeOption rangeOption, OutsideRangeOption outsideRangeOption, min, max, step)

获取表示指定值所在范围的文本。

可用的RangeOption枚举值:IncludeLeft_ExcludeRight, ExcludeLeft_IncludeRight.可用的OutsideRangeOption枚举值:None, LessThanMin, GreaterThanMax, All

CustomCategory

混合

CustomCategory(value, RangeOption rangeOption, [categoryDefinition1, categoryDefinition2...])

获取一个文本,表示指定值所在的范围。可用的RangeOption枚举值:IncludeLeft_ExcludeRight, ExcludeLeft_IncludeRight。

FiscalYear

混合

FiscalYear(dateTime, startMonthOfFiscalYear)

获取指定日期(dateTime)的财政年度。

Asc

文本

Asc(string)

获取与字符对应的字符代码的Integer值。

AscW

文本

AscW(string)

获取与Unicode字符对应的字符代码的Integer值。

Chr

文本

Chr(CharCode)

获取与指定字符代码关联的字符。

ChrW

文本

ChrW(CharCode)

获取与指定字符代码关联的Unicode字符。

Filter

文本

Filter([source1,source2...], Match, [bool Include = True], [CompareMethod Compare = Binary])

获取基于零的数组,该数组包含基于指定过滤条件的string数组的子集。可用的CompareMethod枚举值: Binary, Text。

FormatCurrency

文本

FormatCurrency(expression, [int NumDigitsAfterDecimal = -1], [TriState IncludeLeadingDigit = UseDefault], [TriState UseParensForNegativeNumbers = UseDefault], [TriState GroupDigits = UseDefault])

使用系统控制面板中定义的货币符号,获取格式为货币值的表达式。可用的TriState枚举值:True, False, UseDefault。

FormatDateTime

文本

FormatDateTime(expression, [DateFormat NamedFormat = GeneralDate])

获取表示日期/时间值的字符串表达式。可用的DateFormat枚举值:GeneralDate, LongDate, ShortDate, LongTime, ShortTime。

FormatNumber

文本

FormatNumber(expression, [int NumDigitsAfterDecimal = -1], [TriState IncludeLeadingDigit = UseDefault], [TriState UseParensForNegativeNumbers = UseDefault], [TriState GroupDigits = UseDefault])

获取格式为数值的表达式。可用的TriState枚举值:True, False, UseDefault。

FormatPercent

文本

FormatPercent(expression, numDigitsAfterDecimal = -1, TriState includeLeadingDigit = UseDefault, TriState useParensForNegativeNumbers = UseDefault, TriState groupDigits = TriState.UseDefault)

获取格式为百分比(即乘以100)的表达式,其尾部为%字符。可用的TriState枚举值:True, False, UseDefault。

GetChar

文本

GetChar(str, Index)

获取表示所提供字符串(str)中指定索引(Index)的字符。

InStr

文本

InStr(string1, string2, [CompareMethod Compare = Binary])

获取给定字符串string2)在字符串(string1)中第一次出现的起始位置。可用的CompareMethod枚举值: Binary, Text。

InStrRev

文本

InStrRev(stringCheck, stringMatch, [int start = -1], [CompareMethod compare = Binary])

获取第一次出现的字符串(stringCheck)在字符串(stringMatch)中的位置(从字符串的右侧开始)。可用的CompareMethod枚举值:Binary, Text.

Join

文本

Join([source1,source2...], [string delimiter = " "])

获取通过连接数组中包含的多个子字符串(source1,source2...)创建的字符串。

LCase

文本

LCase(value)

获取将给定字符串(value)转换为小写的字符串或字符。

LSet

文本

LSet(str, length)

获取包含调整为指定长度(length)的字符串(str)左对齐的字符串。

Mid

文本

Mid(str, start)

获取包含指定字符串(str)中从指定数值(start)开始,获取指定数量(length)字符的字符串。

RSet

文本

RSet(str, length)

获取包含调整为指定长度(length)的字符串(str)的右对齐的字符串。

Space

文本

Space(number)

获取由指定数量(number)的空格组成的字符串。

Split

文本

Split(str, [string delimiter = " "], [int limit = -1], [CompareMethod compare = Binary])

获取包含指定数量子字符串的从零开始的一维数组。

StrComp

文本

StrComp(string1, string2, [CompareMethod compare = Binary])

获取根据字符串比较的结果,返回-1,0或1。

StrDup

文本

StrDup(number, character)

获取由指定字符(character)重复指定次数(number)组成的字符串或对象。

StrReverse

文本

StrReverse(str)

获得将给定字符串(str)的字符顺序颠倒过来生成的字符串。

UCase

文本

UCase(str)

获取将指定字符串(str)转换为大写的字符串或字符。

StrLike

文本

StrLike(str, pattern, CompareMethod compareOption)

比较参数(str)和(pattern)并返回与Like运算符相同的结果。可用的CompareMethod枚举值: Binary, Text。

StrLikeText

文本

StrLikeText(str, Pattern)

使用文本比较参数(str)和(pattern)并返回与Like运算符相同的结果。

StrLikeBinary

文本

StrLikeBinary(str, Pattern)

使用二进制比较参数(str)和(pattern)并返回与Like运算符相同的结果。

DateSerial

日期时间

DateSerial(year, month, day)

获取表示指定年(year)、月(month)和日(day)的日期值。

DateString

日期时间

DateString()

根据您的系统返回表示当前日期的字符串。

DateValue

日期时间

DateValue(stringDate)

获取包含字符串表示的日期信息的Date值,时间信息设置为凌晨(00:00:00)。

Day

日期时间

Day(dateValue)

获取1到31之间的Integer值,表示该月的某天。

Hour

日期时间

Hour(timeValue)

获取0到23之间的整数值,表示一天中的小时。

Minute

日期时间

Minute(timeValue)

获取0到59之间的整数值,表示小时的分钟。

Month

日期时间

Month(dateValue)

获取1到12之间的整数值,表示一年中的月份。

MonthName

日期时间

MonthName(month, [bool abbreviate = false])

获取包含指定月份month名称的字符串。

Now

日期时间

Now()

根据您的系统返回包含当前日期和时间的日期值。

Second

日期时间

Second(timeValue)

获取0到59之间的整数值,表示分钟的秒。

TimeOfDay

日期时间

TimeOfDay()

根据您的系统返回或设置包含当前时间的日期值。

Timer

日期时间

Timer()

获取自凌晨起经过的秒数。

TimeSerial

日期时间

TimeSerial(hour, minute, second)

获取表示指定小时,分钟和秒的Date值,其中日期信息设置为相对于1年的1月1日。

TimeString

日期时间

TimeString()

根据您的系统返回或设置表示当前时间的字符串。

TimeValue

日期时间

TimeValue(stringTime)

获取包含字符串表示的时间信息的Date值,日期信息设置为1年1月1日。

Today

日期时间

Today()

根据您的系统返回或设置包含当前日期的日期值。

Weekday

日期时间

Weekday(dateValue, [FirstDayOfWeek dayOfWeek = Sunday])

获取表示星期几的数值。可用的FirstDayOfWeek枚举值: System, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday.

WeekdayName

日期时间

WeekdayName(weekday, [bool abbreviate = false], [FirstDayOfWeek firstDayOfWeekValue = System])

获取包含指定工作日名称的字符串。可用的FirstDayOfWeek枚举值:System, Sunday, Monday,Tuesday, Wednesday, Thursday, Friday, Saturday.

Year

日期时间

Year(dateValue)

获取表示年份的1到9999之间的数值。

CBool

类型转换

CBool(value)

将给定值(value)转换为'bool'类型。

CByte

类型转换

CByte(value)

将给定值(value)转换为'byte'类型。

CChar

类型转换

CChar(value)

将给定值(value)转换为'char'类型。

CDate

类型转换

CDate(value)

将给定值(value)转换为'DateTime'类型。

CDbl

类型转换

CDbl(value)

将给定值(value)转换为'double'类型。

CDec

类型转换

CDec(value)

将给定值(value)转换为'decimal'类型。

CInt

类型转换

CInt(value)

将给定值(value)转换为'int'类型。

CLng

类型转换

CLng(value)

将给定值(value)转换为'long'类型。

CShort

类型转换

CShort(value)

将给定值(value)转换为'short'类型。

CSng

类型转换

CSng(value)

将给定值(value)转换为'float'类型。

CStr

类型转换

CStr(value)

将给定值(value)转换为'string'类型。

Fix

类型转换

Fix(number)

获取指定数值(number)的整数部分。Fix函数和Int函数的区别:Fix函数转换-8.4到-8,Int函数转换-8.4到-9。

Hex

类型转换

Hex(number)

获取指定数值(number)的十六进制值的字符串。

Int

类型转换

Int(number)

获取指定数值(number)的整数部分。Int和Fix之间的差异:Int将-8.4转换为-9,Fix将-8.4转换为-8。

Oct

类型转换

Oct(number)

获取指定数值(number)的八进制值的字符串。

Str

类型转换

Str(number)

获取指定数字(number)的字符串表示形式。始终为数字符号保留前导空格。

Val

类型转换

Val(expression)

获取字符串中包含的数字作为适当类型的数值。

Rnd

数学

Rnd()

获取Single类型的随机数。

Choose

流程

Choose(Index, [choice1,choice2...])

根据index的值从选择列表中返回一个值。如果index为1,则选择返回列表中的第一个选项;如果index为2,则返回第二个选择,依此类推。语法: Choose(index, choice-1 [, choice-2, ... [, choice-n ]] )

IIF

流程

IIF(expression, TruePart, FalsePart)

获取两个对象中的一个,如果表达式的计算结果为真,则选择返回(TruePart);否则返回(FalsePart)。

Switch

流程

Switch([varExpr1,varExpr2...])

计算表达式列表并返回与列表中第一个表达式相关联的值或表达式,该值为True。语法: Switch(expr-1, value-1 [ ,expr-2,value-2… [ ,expr-n,value-n ]] )

Partition

流程

Partition(Number, Start, Stop, Interval)

获取指示在计算的一系列范围内出现数字的位置。您可以创建一个选择查询,显示有多少订单落在各种范围内。例如,订单值从1到1000,1001到2000,依此类推。

IsArray

检测

IsArray(exp)

获取一个布尔值,指示变量(exp)是否为数组。

IsDate

检测

IsDate(exp)

获取一个布尔值,如果表达式是日期或可识别为有效日期或时间,则返回True;反之,则返回False。

IsNothing

检测

IsNothing(exp)

获取一个布尔值,指示表达式是否没有为其分配对象。

IsNumeric

检测

IsNumeric(exp)

获取一个布尔值,指示是否可以将表达式计算为数字。

IsError

检测

IsError(exp)

获取一个布尔值,指示是否可以将表达式计算为错误(exception)。

IsDBNull

检测

IsDBNull(exp)

获取一个布尔值,指示对象是空值还是DBNull。

DDB

财务

DDB(Cost, Salvage, Life, Period, [double Factor = 2.0])

获取使用双倍余额递减法或您指定的其他方法指定特定时间段内资产的折旧。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/ddb-function。

FV

财务

FV(Rate, NPer, Pmt, [double PV = 0.0], [DueDate Due = EndOfPeriod])

获取指定基于定期,固定付款和固定利率的年金的未来价值。可用的DueDate枚举值: EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/fv-function。

IPMT

财务

IPmt(Rate, Per, NPer, PV, [double FV = 0.0], [DueDate Due = EndOfPeriod])

获取指定基于定期固定付款和固定利率的特定年金期间的利息支付。可用的DueDate枚举值: EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/ipmt-function。

NPER

财务

NPer(Rate, Pmt, PV, [double FV = 0.0], [DueDate Due = EndOfPeriod])

获取指定基于定期,固定付款和固定利率的年金的期数。可用的DueDate枚举值::EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/nper-function。

PMT

财务

Pmt(Rate, NPer, PV, [double FV = 0.0], [DueDate Due = EndOfPeriod)]

获取指定基于定期固定付款和固定利率的年金付款。可用的DueDate枚举值: EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/pmt-function。

PPMT

财务

PPmt(Rate, Per, NPer, PV, [double FV = 0.0], [DueDate Due = EndOfPeriod])

获取指定基于定期固定付款和固定利率的特定年金期间的本金。可用的DueDate枚举值: EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/ppmt-function。

PV

财务

PV(Rate, NPer, Pmt, [double FV = 0.0], [DueDate Due = EndOfPeriod])

获取指定基于将来要支付的定期固定付款和固定利率的年金现值。可用的DueDate枚举值:EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/pv-function。

RATE

财务

Rate(NPer, Pmt, PV, [double FV = 0.0], [DueDate Due = EndOfPeriod], [double Guess = 0.1])

获取指定年金的每个期间的利率。可用的DueDate枚举值:EndOfPeriod, BegOfPeriod。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/rate-function。

SLN

财务

SLN(Cost, Salvage, Life)

获取指定单个期间资产的直线折旧。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/sln-function。

SYD

财务

SYD(Cost, Salvage, Life, Period)

获取指定指定期间内资产的年数总和折旧。查看详细信息 https://msdn.microsoft.com/en-us/vba/language-reference-vba/articles/syd-function。