Quick suggestion, use CROSS JOIN, here is a quick example
😎
USE tempdb;
GO
SET NOCOUNT ON;
IF OBJECT_ID(N'dbo.TBL_GROUP') IS NOT NULL DROP TABLE dbo.TBL_GROUP;
CREATE TABLE dbo.TBL_GROUP
(
[Group] CHAR(2) NOT NULL CONSTRAINT PK_DBO_TBL_GROUP_GROUP PRIMARY KEY CLUSTERED
,intensity INT NOT NULL
);
INSERT INTO dbo.TBL_GROUP([Group],intensity)
VALUES
('AA',1120)
,('AB',1400)
,('BA',1800)
,('BB',2240)
,('CA',2800);
SELECT
G.[Group]
,G.intensity
,G.[Group] + G1.[Group] AS OptionX
FROM dbo.TBL_GROUP G
CROSS JOIN dbo.TBL_GROUP G1
WHERE G.intensity <> G1.intensity
ORDER BY G.[Group] ASC;
Results
Group intensity OptionX
----- ----------- -------
AA 1120 AAAB
AA 1120 AABA
AA 1120 AABB
AA 1120 AACA
AB 1400 ABAA
AB 1400 ABBA
AB 1400 ABBB
AB 1400 ABCA
BA 1800 BAAA
BA 1800 BAAB
BA 1800 BABB
BA 1800 BACA
BB 2240 BBAA
BB 2240 BBAB
BB 2240 BBBA
BB 2240 BBCA
CA 2800 CAAA
CA 2800 CAAB
CA 2800 CABA
CA 2800 CABB