datepart()并选择ASE 16

2020-09-12 14:14发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在HP-UX上运行ASE 16 SP02 PL03,并尝试以下SQL:

声明@a tinyint

声明@e日期时间

选择@ e = getdate(),@ a = datepart(dw,@ e)

选择@ e,@ a

如果(1,3)中的@a打印"确定"

结果是:

@e @a

2018年10月9日上午10:55:51 NULL/**->空值**/

但是,如果将第3行修改为:

选择@ e = getdate()

选择@ a = datepart(dw,@ e)

结果是:

@e @a

2018年10月9日上午10:56:00 3/*-> *值**/

任何已知的行为?

谢谢

致谢

乔斯

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

在HP-UX上运行ASE 16 SP02 PL03,并尝试以下SQL:

声明@a tinyint

声明@e日期时间

选择@ e = getdate(),@ a = datepart(dw,@ e)

选择@ e,@ a

如果(1,3)中的@a打印"确定"

结果是:

@e @a

2018年10月9日上午10:55:51 NULL/**->空值**/

但是,如果将第3行修改为:

选择@ e = getdate()

选择@ a = datepart(dw,@ e)

结果是:

@e @a

2018年10月9日上午10:56:00 3/*-> *值**/

任何已知的行为?

谢谢

致谢

乔斯

付费偷看设置
发送
2条回答
半个程序猿
1楼 · 2020-09-12 14:44.采纳回答

嗨,何塞,

SQL独立处理每个子句,就好像它们在并行处理一样。 结果不会从左到右流动,每个子句会看到相同的变量初始值。

在此处记录:

https://help.sap.com/查看器/b65d6a040c4a4709afd93068071b2a76/16.0.3.5/en-US/aa7c9648bc2b1014a8b98802356dfc1d.html

"不要使用单个select语句将值分配给一个变量,然后再分配给基于第一个变量的值。这样做可能会产生不可预测的结果。"

干杯,

-bret

clasier
2楼-- · 2020-09-12 14:29

最后一个问题:

如果我使用"错误的语法",可能会影响以下IF条件(应相同)的结果:

如果@var in(x,y)

vs

如果@ var = 或@ var =

谢谢

Jose

一周热门 更多>