Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 理解查询以删除非数字字符_Sql_Sql Server_Tsql - Fatal编程技术网

Sql 理解查询以删除非数字字符

Sql 理解查询以删除非数字字符,sql,sql-server,tsql,Sql,Sql Server,Tsql,我发现了一篇非常有用的帖子,如何从字符串中删除非数字字符: 但问题很少,希望有人能解释一下。 1) 为什么要使用此选项: select top (100) N=row_number() over (order by @@spid) from sys.all_columns) 结果给出数字1-100,但为什么@spid和sys.all\u列?有更好的方法吗 2) 。其中N该答案使用了@@spid作为常量值,类似于order by(select)` 它仅对100行的源使用sys.all_列来生成

我发现了一篇非常有用的帖子,如何从字符串中删除非数字字符:

但问题很少,希望有人能解释一下。
1) 为什么要使用此选项:

select top (100) N=row_number() over (order by @@spid) from sys.all_columns)
结果给出数字1-100,但为什么@spid和sys.all\u列?有更好的方法吗


2)
。其中N该答案使用了
@@spid
作为常量值,类似于
order by(select
)`

它仅对100行的源使用sys.all_列来生成行号

以下是Aaron Bertrand对生成集合或序列的备选方案进行基准测试的一些文章:





这个答案使用了
@@spid
作为常量值,类似于
orderby(select
)`

它仅对100行的源使用sys.all_列来生成行号

以下是Aaron Bertrand对生成集合或序列的备选方案进行基准测试的一些文章:





sys.all_columns是一个包含元数据的系统表,它被用作生成数据的虚拟表(它有许多行)。对于您的第二个问题[1]是该子查询的别名,它可能是[RandomName]-
as
是隐式的,
(子查询)as SomeName
[
]
用于sql server中的名称——出于某种原因,这个家伙想将这个表命名为“1”——我认为这会使代码更难阅读。如果它不是一个数字,你不需要括号,而且tmp是对表的一个很好的描述,我会用
tmp
代替
[1]
。将这些问题作为对答案的注释发布会更有意义。sys.all_列是一个包含元数据的系统表,它被用作生成数据的虚拟表(它有许多行)。对于第二个问题[1]是该子查询的别名,它可能是[RandomName]-
as
是隐式的,
(子查询)as SomeName
[
]
用于sql server中的名称——出于某种原因,这家伙想将该表命名为“1”--大多数情况下,我认为这只会使代码更难阅读。如果不是一个数字,你不需要括号,而且tmp是表格的一个很好的描述,我会用
tmp
来代替
[1]
。将这些问题作为对答案的评论,会更有意义。