sql函数day3

博客介绍了几个SQL函数的用法。decode函数根据条件返回不同结果,类似if else语句;GREATEST函数返回表达式中的最大值,有空值则返回空;substr函数用于字符截取,可指定起始位置和截取长度,起始位置为负数时反向截取。

1.decode(X,A,B,C,D,E)

//当X = A,函数返回B;当X != A 且 X = C,函数返回D;当X != A 且 X != C,函数返回E。
其中,X、A、B、C、D、E都可以是表达式

//等同于decode(X,ifA,thenB,ifC,thenD,elseD)——>if else语句

SELECT decode(sign(2000-186),4000,'高薪',3000,'中等','有点低') FROM dual

2.GREATEST(expr1,expr2,expr3....)

//返回最大值,若有空则返回空

3.substr(string,int a,int b)字符截取

//返回截取后的字符串。从第a位开始截取b个字符,当a为负数,则反向开始截取a

SELECT substr('hey,howsitgoing',2,5) FROM dual

//返回第2—6位

SELECT substr('hey,howsitgoing',-2,5) A FROM dual

 //返回末2位

SELECT substr('hey,howsitgoing',-7,5) A FROM dual

//返回第末7—第末3位

 

SQL 中的 `LAST_DAY` 函数用于获取指定日期所在月份的最后一天。该函数在不同的数据库系统中具有相似的功能,但在语法上可能存在细微差异。以下是一些常见的用法及示例。 ### 获取当前日期所在月份的最后一天 在大多数 SQL 数据库中,可以直接使用 `LAST_DAY` 函数来获取当前日期所在月份的最后一天。 ```sql SELECT LAST_DAY(CURRENT_DATE) AS last_day_of_month; ``` 此查询将返回当前日期所在月份的最后一天[^2]。 ### 获取指定日期所在月份的最后一天 可以将 `LAST_DAY` 函数与特定日期一起使用,以获取该日期所在月份的最后一天。 ```sql SELECT LAST_DAY('2016-08-16') AS last_day; -- 结果:2016-08-31 ``` 此查询将返回 `2016-08-31`,即 `2016-08-16` 所在月份的最后一天[^2]。 ### 获取下个月的最后一天 有时可能需要获取下个月的最后一天。可以通过先获取当前日期的下个月,然后再使用 `LAST_DAY` 函数来实现。 ```sql SELECT LAST_DAY(DATE_ADD(CURRENT_DATE, INTERVAL 1 MONTH)) AS next_month_last_day; ``` 此查询首先使用 `DATE_ADD` 函数将当前日期增加一个月,然后使用 `LAST_DAY` 函数获取下个月的最后一天[^1]。 ### 获取当前月份的第一天 虽然 `LAST_DAY` 函数主要用于获取月份的最后一天,但也可以结合其他函数来获取月份的第一天。 ```sql SELECT DATE_ADD(LAST_DAY(DATE_ADD(CURRENT_DATE, INTERVAL -1 MONTH)), INTERVAL 1 DAY) AS first_day_of_month; ``` 此查询首先使用 `DATE_ADD` 函数将当前日期减去一个月,然后使用 `LAST_DAY` 函数获取上个月的最后一天,最后再使用 `DATE_ADD` 函数将日期加一天,从而获取当前月份的第一天[^2]。 ### 使用 `TRUNC` 函数获取月份的第一天 在某些数据库系统中,还可以使用 `TRUNC` 函数来获取月份的第一天,然后再使用 `LAST_DAY` 函数获取月份的最后一天。 ```sql SELECT TRUNC(CURRENT_DATE, 'MONTH') AS first_day_of_month; SELECT LAST_DAY(TRUNC(CURRENT_DATE, 'MONTH')) AS last_day_of_month; ``` 此查询首先使用 `TRUNC` 函数将当前日期截断到月份的第一天,然后使用 `LAST_DAY` 函数获取该月份的最后一天[^2]。 ### ObjectScript 调用 `LAST_DAY` 函数 在某些特定的环境中,如 InterSystems Caché,可以使用 `ObjectScript` 来调用 `LAST_DAY` 函数。 ```objectscript WRITE $SYSTEM.SQL.Functions.LASTDAY("2018-02-22"),! -- 输出:2018-02-28 WRITE $SYSTEM.SQL.Functions.LASTDAY(64701) -- 输出:2018-02-28 ``` 此示例展示了如何使用 `ObjectScript` 调用 `LAST_DAY` 函数来获取指定日期所在月份的最后一天[^3]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值