sql - T-SQL :: 从 JOIN 中消除双精度
问题描述
我正在用 T-SQL 编写一个允许我列出的查询:
- 表
- 列
- 数据类型
- 行
但是当我运行它时,我注意到有双列。我不明白为什么。我知道我可以删除它们,但我相信我在 JOIN 中做了一些事情。
select
sys.tables.name as Table_Name,
sys.columns.name as Column_Name,
sys.types.name as data_type,
sys.partitions.rows as [Rows]
from
sys.columns
right join sys.tables
on sys.columns.object_id = sys.tables.object_id
right join sys.types
on sys.columns.system_type_id = sys.types.system_type_id
inner join sys.partitions
on sys.tables.object_id = sys.partitions.object_id
where
sys.columns.name is not NULL
and
sys.types.name != 'sysname'
order by
Table_Name
解决方案
为了消除查询中的重复行,我首先要尝试的是SELECT DISTINCT
行,如下所示:
SELECT DISTINCT --> added an important keyword here
sys.tables.name AS Table_Name,
sys.columns.name AS Column_Name,
sys.types.name AS data_type,
sys.partitions.rows AS [Rows]
FROM
sys.columns
RIGHT JOIN sys.tables ON sys.columns.object_id = sys.tables.object_id
RIGHT JOIN sys.types ON sys.columns.system_type_id = sys.types.system_type_id
INNER JOIN sys.partitions ON sys.tables.object_id = sys.partitions.object_id
WHERE
sys.columns.name IS NOT NULL
AND
sys.types.name <> 'sysname'
ORDER BY
Table_Name
推荐阅读
- java - SQL 查找房间未满的具体日期
- reactjs - 使用 history.goBack() 检测用户是否到达当前路线
- java - 设置 Java.time datePicker
- xaml - 将汉堡按钮导航到 MasterDetailPage.Master Part?
- python - Python - 实例变量太多?设计惯例?
- javascript - 如何从这个烦人的网页中获取 pdf?
- aggregate - 不同聚合的边界问题
- reactjs - 我如何在 React 中使用带有表单的 NextJS 路由
- git - GitLab:向尚不存在的目录添加更改
- python - 如何让我的精灵在pygame中反弹