SQLServer中如何获取没有重复的记录,记录中字段有text,或image数据类型
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLServer中如何获取没有重复的记录,记录中字段有text,或image数据类型相关的知识,希望对你有一定的参考价值。
不能以 DISTINCT 方式选择 text、ntext 或 image 数据类型
不用DISTINCT ,还有什么方法?
1、表中有IDENTITY 属性字段
假设其IDENTITY 属性字段字段为id
select a.* into # from tb_Allocations a
select * from # a where id in(select min(id) as id from # b
where a. SignsRoadcost=b. SignsRoadcost)
2、表中没有IDENTITY 属性字段
select a.*,id=identity(int,1,1) into # from tb_Allocations a
select * from # a where id in(select min(id) as id from # b
where a. SignsRoadcost=b. SignsRoadcost) 参考技术A http://zhidao.baidu.com/question/104013793.html
这里是我之前回答别人的。。
要求和你比较类似。。你可以去看看这个
如何获取MYSQL分层数据中的所有子记录[重复]
【中文标题】如何获取MYSQL分层数据中的所有子记录[重复]【英文标题】:How to get all children records in MYSQL hierarchical data [duplicate] 【发布时间】:2017-11-20 03:16:52 【问题描述】:我有一个包含以下列的表格
id | parent_customer_id
-----------------------------
1 | 0
2 | 0
3 | 1
4 | 2
5 | 4
6 | 4
我想要一个可以返回某个客户的所有子 ID 的脚本。例如
get_child_ids (1) = 1,3
get_child_ids(2) = 2,4,5,6
get_child_ids(3) = 3
get_child_ids(4) = 4,5,6
get_child_ids(5) = 5
get_child_ids(6) = 6
有些 id 的深度可以达到 10 级。我在https://explainextended.com/2009/07/20/hierarchical-data-in-mysql-parents-and-children-in-one-query/ 找到了获取父 ID 的绝佳解决方案,但我无法获取孩子
【问题讨论】:
什么麻烦? id 的数据与您共享的示例数据中的其他 id 不同。 【参考方案1】:最好的解决方案是“使用 CTE 语法编写递归 SQL 查询”,但直到 MySQL 8.0.1 才支持。
递归 CTE 语法是标准 SQL,所有流行品牌的 SQL 兼容产品都支持它,现在 MySQL 支持它。
我在 2017 年 4 月的 Percona Live Conference 上介绍了 MySQL 中即将推出的递归查询功能:Recursive Query Throwdown in MySQL 8。
WITH RECURSIVE MyCTE AS (
SELECT id, parent_customer_id FROM MyTable WHERE id = ?
UNION
SELECT id, parent_customer_id FROM MyTable JOIN MyCTE
ON MyTable.parent_customer_id = MyCTE.id
)
SELECT * FROM MyCTE;
如果您不能使用 MySQL 8.0.1 或更高版本,您可以使用 ExplainExtended 中的巧妙解决方案,或者您可以以其他方式存储分层数据以支持非递归查询。
我在我的演示文稿Models for hierarchical data 或我对What is the most efficient/elegant way to parse a flat table into a tree? 的回答中展示了一些解决方案。
我还在我的书SQL Antipatterns: Avoiding the Pitfalls of Database Programming中写了一个章节。
【讨论】:
【参考方案2】:您必须查看以下关于Managing Hierarchical Data in MySQL
的文章这是一篇出色的文章,向您展示了如何处理具有“无限”深度的分层数据的绝妙技术。
注意事项:如果您正在处理孩子有唯一父母的分层数据,那么这对您来说是一个很好的解决方案。但是,如果您正在处理具有多个父级的子代,那么您正在处理的是图表,因此,MySQL 不适合您。您必须改为以Neo4J 的身份探索解决方案。
【讨论】:
以上是关于SQLServer中如何获取没有重复的记录,记录中字段有text,或image数据类型的主要内容,如果未能解决你的问题,请参考以下文章