Table 普通 Table 表达式 (CTE) 查询中的 RowCount?
Table RowCount in a Common Table Expression (CTE) query?
我正在尝试在我的输出中获取记录计数...但在语法上遇到困难。看不出我做错了什么....请帮忙
SELECT
InfoSchema.table_catalog + '.' +
InfoSchema.Table_Schema + '.' +
InfoSchema.Table_Name as PhysicalName,
CONVERT(char(10), SysObj.crdate,126) as Created,
SysInx.rows Records
FROM
INFORMATION_SCHEMA.TABLES AS InfoSchema left join
SYSOBJECTS AS SysObj ON InfoSchema.TABLE_NAME = SysObj.name
WHERE
TABLE_TYPE = 'BASE TABLE'
AND SysObj.crdate is not null
AND SysObj.id = (
SELECT MIN(SysInx.id), rows
FROM SYSINDEXES AS SysInx
WHERE SysInx.id = SysObj.id
)
期望的输出是这样的:
PhysicalName Created RowCount
--------------+------------+-------------
tableName1 2020-01-01 127653
tableName2 2018-01-01 234098
tableName3 2019-01-01 0
在结果列中使用子查询。
SELECT
...
(
SELECT MAX(rows)
FROM SYSINDEXES AS SysInx
WHERE SysInx.id = SysObj.id
) AS Records
FROM
...
WHERE
...
AND SysObj.id IN (
SELECT SysInx.id
FROM SYSINDEXES AS SysInx
)
我正在尝试在我的输出中获取记录计数...但在语法上遇到困难。看不出我做错了什么....请帮忙
SELECT
InfoSchema.table_catalog + '.' +
InfoSchema.Table_Schema + '.' +
InfoSchema.Table_Name as PhysicalName,
CONVERT(char(10), SysObj.crdate,126) as Created,
SysInx.rows Records
FROM
INFORMATION_SCHEMA.TABLES AS InfoSchema left join
SYSOBJECTS AS SysObj ON InfoSchema.TABLE_NAME = SysObj.name
WHERE
TABLE_TYPE = 'BASE TABLE'
AND SysObj.crdate is not null
AND SysObj.id = (
SELECT MIN(SysInx.id), rows
FROM SYSINDEXES AS SysInx
WHERE SysInx.id = SysObj.id
)
期望的输出是这样的:
PhysicalName Created RowCount
--------------+------------+-------------
tableName1 2020-01-01 127653
tableName2 2018-01-01 234098
tableName3 2019-01-01 0
在结果列中使用子查询。
SELECT
...
(
SELECT MAX(rows)
FROM SYSINDEXES AS SysInx
WHERE SysInx.id = SysObj.id
) AS Records
FROM
...
WHERE
...
AND SysObj.id IN (
SELECT SysInx.id
FROM SYSINDEXES AS SysInx
)