回答

收藏

T-SQL美元符号表达式

技术问答 技术问答 236 人阅读 | 0 人回复 | 2023-09-14

在此答案中,有一个技巧可以允许ROW_NUMBER()在ORDERBY子句中将窗口函数与“常量”一起使用:
- z& `6 _$ i1 u' wSELECT ROW_NUMBER() OVER (ORDER BY $/0)
0 a, `  P: ]' ?% X7 N* n- WFROM master..spt_values) Q# ]/ }! ^1 r7 ^
在Google中进行搜索后, 在这种情况下 我找不到 美元符号是什么意思?
" n" U/ k: c6 T9 D# U8 A我试图执行一个简单的查询:
4 {2 \. x) V$ v; O' nSELECT $;
6 x+ j  [( j3 E  i然后返回0。* c/ q7 g: A& U. H4 M
有人可以解释一下吗?9 A* U! Z( W+ l1 T
               
/ i% [% i4 U* d& n+ [% [解决方案:7 f5 A# h+ [4 [, p: R
                1 `3 Q$ l; s' [5 H

: ?' t! W1 y  i, u2 z0 p- j
* L# c6 S4 C. o! H3 Q, V( Y$ g                它只是一个money常量(T-SQL称为文字)。  n+ q. m; e5 e5 u2 N4 R% u& D
如果您看到表达式$2.50,那么您可能不会感到惊讶,这只是另一个常量。
; ~; X6 F& F3 r$ H2 e其他一些示例:select 拢,垄,陇,楼,鈧?全部也返回0。
2 N  Z2 z1 \. V' H1 `- V, W9 M+ R
' a5 o7 S3 w- O) w! X确定在T-SQL中查看哪种数据类型可能很棘手。一个窍门,如果您 怀疑
& I  i/ F% w) o7 w6 w* n, u您知道它是什么类型,那就是选择一个不兼容的类型并尝试进行转换:
9 k- j. g( S$ U$ h+ zselect CONVERT(date,$)
( P$ \( @# }6 ]" k0 h, \结果:- Z" G" Y' T2 J  ~# W; J) ?
Msg 529, Level 16, State 2, Line 1' [" c- G+ c5 q; u
Explicit conversion from data type money to date is not allowed.
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则