我不确定我是否正确编写了以下 SQL 语句?(使用 T-SQL)
我有两张桌子:
表 1:[dbo].[t_Orgnzs]
[id] = INT
[nm] = NVARCHAR(256)
表 2:[dbo].[t_Usrs]
[id] = INT
[ds] = NVARCHAR(256)
[oid] = INT (referenced [dbo].[t_Orgnzs].[id])
我需要从表 2 中选择元素,按从 1 到 16 的 [oid] 列排序,但问题是 [oid] 引用了表 1 中的字符串,我实际上需要将其作为结果返回。
比如说,如果表格是这样布置的: 表 1:
id nm
1 Name 1
2 Name 2
3 Name 3
4 Name 4
和表 2:
id ds oid
1 A 2
2 B 4
3 C 1
结果查询必须返回:
3 C Name 1
1 A Name 2
2 B Name 4
所以这是我正在使用的 SQL:
WITH ctx AS (
SELECT [id],
[ds],
(SELECT [nm] FROM [dbo].[t_Orgnzs] WHERE [id]=[dbo].[t_Usrs].[oid]) AS organizName,
ROW_NUMBER() OVER (ORDER BY organizName ASC) AS rowNum
FROM [dbo].[t_Usrs]
)
SELECT [id], [ds], organizName
FROM ctx
WHERE rowNum>=1 AND rowNum<=16;
我收到一个错误:“列名 'organizName' 无效。”