我发现非常有用的帖子,如何从字符串中删除非数字字符: https://stackoverflow.com/a/18635337/6216435
但很少有人提出问题,希望有人可以解释一下 1)为什么要使用它:
select top (100) N=row_number() over (order by @@spid) from sys.all_columns)
结果给出数字1-100,但为什么@@ spid和sys.all_columns?有没有更好的方法呢?
2)..where N<=datalength(DirtyCol)) [1] where C between '0' and '9'
- [1]代表什么?
感谢您的帮助:)
答案 0 :(得分:0)
答案是使用@@spid
作为常量值,类似于order by (select
)`
仅使用sys.all_columns作为100行的源来生成行号。
以下是一些文章,其中Aaron Bertrand对生成集合或序列的替代方法进行了基准测试:
Generate a set or sequence without loops – part 1 - Aaron Bertrand - 2013-01-16
Generate a set or sequence without loops – part 2 - Aaron Bertrand - 2013-01-17
Generate a set or sequence without loops – part 3 - Aaron Bertrand - 2013-01-18