SQL Server按顺序加入
发布时间:2020-05-24 12:44:24 所属栏目:MsSql 来源:互联网
导读:我在输入中有2个字符串,例如’1,5,6’和’2,89,9′,具有相同数量的元素(3或加号). 我想要的那两个字符串作为“纵坐标连接” 1 25 896 9 我想要分配一个rownumber并在2个结果集之间建立连接 SELECT a.item, b.item FROM ( SELECT ROW_NUMBER() OVER (ORDER BY
|
我在输入中有2个字符串,例如’1,5,6’和’2,89,9′,具有相同数量的元素(3或加号).
1 2 5 89 6 9 我想要分配一个rownumber并在2个结果集之间建立连接 SELECT a.item,b.item FROM
(
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS rownumber,* FROM dbo.Split('1,6',',')
) AS a
INNER JOIN
(
SELECT
ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS rownumber,* FROM dbo.Split('2,9',')
) AS b ON a.rownumber = b.rownumber
这是最好的做法吗? 解决方法当dbo.Split()返回数据集时,您所做的任何事情都不能绝对确定地分配您想要的row_number(基于它们在字符串中的顺序).如果没有与数据实际相关的ORDER BY,SQL永远不会保证排序.随着您使用(SELECT 0)订购的技巧,您可能经常得到正确的值.可能经常.但这绝不保证.偶尔你会得到错误的订单. 您最好的选择是重新编码dbo.Split()以在解析字符串时分配row_number.只有这样才能100%确定row_number确实对应于项目在列表中的位置. 然后按照您的建议加入他们,并获得您想要的结果. 除此之外,这个想法对我来说似乎没问题.如果一个列表可能比另一个列表长,您可能希望考虑一个FULL OUTER JOIN. (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 是否有任何与SQL相同的Cassandra查询:LIKE Condition?
- sql-server – MS SQL Server中的数百个休眠进程会降低性能
- sql-server – 如何在动态查询中连接uniqueidentifier
- 一条SQL语句搞定Sql2000 分页
- sql-server – 在SQL Server中搜索存储为XML的数据的最佳方
- Redis禁用命令、危险命令及规避方法
- 用户数据的No-SQL(Cassandra)数据建模
- sql – 与select_related的Django反向关系
- sql-server – VB6 ADODB.Recordset RecordCount属性始终返
- 是否有使用代数数据类型的Haskell数据库?
