sql添加要选择的数字

czq61nw1  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(321)

我有一个基本的SELECTDISTINCT语句,它返回一个课程前缀列表(eng、mat、sci等)。我希望select也在前缀后面返回一组数字(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
brjng4g3

brjng4g31#

你可以 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)

相关问题