我目前正在为我的 MCSA 数据平台学习,我答错了以下问题,我正在寻找关于为什么我的答案错误的解释,因为测试中的解释没有多大意义。
您有一个名为 AuditTrail 的表,用于跟踪对其他表中数据的修改。AuditTrail 表由许多进程更新。输入到 AuditTrail 的数据可能包含格式不正确的日期时间值。您实现了一个从各个列检索数据的过程,但有时该过程在无法将数据转换为有效的日期时间值时会引发错误。您需要使用 en-US 格式区域性代码将数据转换为有效的日期时间值。如果转换失败,则必须以 en-US 格式区域性代码返回空值。如果转换失败,则列输出中必须返回空值,并且转换过程不得抛出错误。
选项是TRY_PARSE功能与TRY_CONVERT功能。
我选择了,TRY_PARSE但正确答案是TRY_CONVERT.
任何人都可以澄清为什么TRY_PARSE在这个例子中不是一个有效的选择,因为我不想在未来犯这个错误
我正在尝试重复列中的第一个特定非空值,直到同一列中的下一个特定非空值.我怎么做?
数据如下所示:
ID | Msg
---+-----
1 |
2 |
3 |
4 |
5 | Beg
6 | End
7 |
8 | Beg
9 |
10 |
11 |
12 | End
Run Code Online (Sandbox Code Playgroud)
它应该是这样的:
ID | Msg
---+-----
1 |
2 |
3 |
4 |
5 | Beg
6 | End
7 |
8 | Beg
9 | Beg
10 | Beg
11 | Beg
12 | End
Run Code Online (Sandbox Code Playgroud)
我调查了一下LAG(),LEAD()但我一直在想,我必须使用CURSOR它.我只知道那些但在这种情况下尚未使用过它们.
我是Common Lisp的新手,我有问题。听起来是这样的:编写PRETTY-PRINT过程,该过程接受一个参数(一个广义列表),并使用以下规则进行打印:
(
...
)
列表中的任何元素都将使用相同的算法递归打印。
该函数应打印以下内容:
(pretty-print ' ( a (b c de) fg ))
( a
( b
c
de )
fg )
Run Code Online (Sandbox Code Playgroud)
我尝试自己重写函数几次,然后得到以下代码:
(defun print-list (elements)
(cond
((null elements) (princ ") "))
( t
(cond ((listp (car elements))
; (princ #\Space)
(princ "( ")
(print-list (car elements))
(format t "~%")
)
)
(if (atom (car elements))
(prin1 (car elements)))
(format t "~%")
(princ #\Space)
(print-list (cdr elements))
)
)
)
Run Code Online (Sandbox Code Playgroud)
但是它没有打印出应有的内容。有人可以帮我这个吗?我已经挣扎了一个星期。谢谢