PJ.*_*SQL 4 sql t-sql sql-server oracle plsql
当使用 ROWNUM 作为伪列时,您将如何使用 T-SQL 编写以下查询?这是完整的查询。我意识到它是用 PL/SQL 编写的,我需要更改添加对象。
BASE AS (
SELECT NULL AS ES_CMPNY_STATUS_KEY
,CSG.CMPNY_STATUS_GROUP
,CSG.CMPNY_STATUS_GROUP_ID
,CSG.CMPNY_STATUS_REASON
,CSG.CMPNY_STATUS_REASON_ID
,CSF.CMPNY_CURRENT_STATUS_FLAG
,TRUNC(SYSDATE) AS LOAD_DATE
FROM CMPNY_STATUS_GROUP CSG
CROSS JOIN CMPNY_CURRENT_STATUS_FLAG CSF
ORDER BY CSG.CMPNY_STATUS_GROUP, CSG.CMPNY_STATUS_REASON
)SELECT ROWNUM AS ES_CMPNY_STATUS_KEY
,CMPNY_STATUS_GROUP
,CMPNY_STATUS_GROUP_ID
,CMPNY_STATUS_REASON
,CMPNY_STATUS_REASON_ID
,CMPNY_CURRENT_STATUS_FLAG
,LOAD_DATE
FROM BASE B
UNION
SELECT 0 AS ES_CMPNY_STATUS_KEY
,NULL AS CMPNY_STATUS_GROUP
,0 AS CMPNY_STATUS_GROUP_ID
,NULL AS CMPNY_STATUS_REASON
,0 AS CMPNY_STATUS_REASON_ID
,0 AS CMPNY_CURRENT_STATUS_FLAG
,TRUNC(SYSDATE) AS LOAD_DATE
FROM DUAL
Run Code Online (Sandbox Code Playgroud)
使用row_number():
select row_number() over (order by (select null)) as ES_CMPNY_STATUS_KEY
Run Code Online (Sandbox Code Playgroud)
请注意,order by是必需的。的(select null)出现-实践-以避免任何额外的排序。但是,一般而言,您会包含一个列,用于指定所需数据的排序顺序。
| 归档时间: |
|
| 查看次数: |
3853 次 |
| 最近记录: |