SQL 将数字添加到 Select

SQL Add Numbers To Select

我有一个基本的 SELECT DISTINCT 语句,它是 returning 课程前缀列表(ENG、MAT、SCI 等...)。我希望 select 也 return 前缀后的一组数字 (100-500)。所以最终数据集将如下所示:

ENG 100
ENG 200
ENG 300
ENG 400
ENG 500
MAT 100
MAT 200
MAT 300
MAT 400
MAT 500
SCI 100
SCI 200
SCI 300
SCI 400
SCI 500

这是我提取课程前缀的原始脚本:

SELECT DISTINCT
    LEFT(SECTIONS.EVENT_ID, charindex(' ', SECTIONS.EVENT_ID) - 1) as EVENT_ID
FROM SECTIONS

您可以 cross join 您当前的结果与数字列表生成所有可能的组合:

select s.event_id, v.num
from (
    select distinct left(sections.event_id, charindex(' ', sections.event_id) - 1) as event_id
    from sections
) s
cross join (values (100), (200), (300), (400), (500)) v(num)

或者,如果您想将 event_id 和数字连接在一列中:

select concat(s.event_id, ' ', v.num) new_event_id
from (
    select distinct left(sections.event_id, charindex(' ', sections.event_id) - 1) as event_id
    from sections
) s
cross join (values (100), (200), (300), (400), (500)) v(num)