Sincobile Nhlengethwa Ответов: 1

Как использовать столбец в поле для списка


Оригинальная таблица выглядит так:

CABLE_NUMBER	FROM	TO	SIZE	COLOUR	BKB-927826	BKB-927608	BKB-927199	BKB-927206
7	367	343	0.35	L	1	1	1	1
138	367	130P	0.35	G		1	1	
150	367	38P	0.35	B	1	1	1	1
335	367	257P	0.35	B	1	1	1	1
41	367	25P	0.35	L	1	1	1	1
284	367	536P	0.35	L	1	1	1	1
692	367	88P	0.35	L			NULL	1
781	367	36P	0.35	L		1	1	
200	367	36P	0.35	P	1	1	1	1
792	76	333	0.35	W/B			NULL	1



Там, где есть 1, это означает, что он активен, а неизвестный или нулевой означает, что он не активен, вместо 1 i и для отображения имени столбца, например. BKB-927206, который является номером детали.

Я хочу, чтобы дисплей был таким:
CABLE_NUMBER	FROM	TO	SIZE	COLOUR	UsedToHarness826	UsedToHarness608	UsedToHarness199	UsedToHarness206
7	367	343	0.35	L	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
138	367	130P	0.35	G			[BKB-927199]	
150	367	38P	0.35	B	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
335	367	257P	0.35	B	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
41	367	25P	0.35	L	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
284	367	536P	0.35	L	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
692	367	88P	0.35	L			NULL	[BKB-927206]
781	367	36P	0.35	L			[BKB-927199]	
200	367	36P	0.35	P	[BKB-927826]	[BKB-927608]	[BKB-927199]	[BKB-927206]
792	76	333	0.35	W/B			NULL	[BKB-927206]


Что я уже пробовал:

SELECT top 10
  [CABLE_NUMBER]
      ,[FROM]
      ,[TO]
      ,[SIZE]
      ,[COLOUR]
	  , REPLACE(REPLACE([BKB-927826], '1', '[BKB-927826]'), '', ''  ) AS UsedToHarness826
	  , REPLACE(REPLACE([BKB-927826], '1', '[BKB-927608]'), '', ''  ) AS UsedToHarness608
	  , REPLACE(REPLACE([BKB-927199], '1', '[BKB-927199]'), '', ''  ) AS UsedToHarness199
	  , REPLACE(REPLACE([BKB-927206], '1', '[BKB-927206]'), '', ''  ) AS UsedToHarness199

	  FROM [Defect].[dbo].[Sheet2$]

1 Ответов

Рейтинг:
11

Richard Deeming

Использовать CASE заявление:

SELECT
    [CABLE_NUMBER],
    [FROM],
    [TO],
    [SIZE],
    [COLOUR],
    CASE [BKB-927826] WHEN 1 THEN '[BKB-927826]' END As UsedToHarness826
    CASE [BKB-927608] WHEN 1 THEN '[BKB-927608]' END As UsedToHarness608
    CASE [BKB-927199] WHEN 1 THEN '[BKB-927199]' END As UsedToHarness199
    CASE [BKB-927206] WHEN 1 THEN '[BKB-927206]' END As UsedToHarness206
FROM 
    [Defect].[dbo].[Sheet2$]
;
CASE (Transact-SQL) - SQL Server | Microsoft Docs[^]