【发布时间】:2017-05-04 16:11:37
【问题描述】:
我有一个像这样的表格和值
CREATE TABLE BarcodeTABLE
(
ID INT IDENTITY,
BARCODE_VALUE nvarchar(max),
GTIN2 nvarchar(MAX),
HIBC NVARCHAR(max),
UPC nvarchar(max),
Others2 nvarchar(max)
)
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('012,56', '012', '', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('05,C50,25', 'C50', '25', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('1,2,3', '1', '', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('5,6,7', '', '', '7', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('8,9,10', '', '9', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('100,200,300', '100', '', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('A12,12', '', 'A12', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('B25,10', '', 'B25', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('H65,26,0', 'H65', '', '', '')
INSERT INTO BarcodeTABLE(BARCODE_VALUE, GTIN2, HIBC, UPC, OTHERS2)
VALUES('H75,22,25', 'H75', '', '', '')
我需要得到如图所示的输出,即少数列中不存在的值应该存在于图中所示的单独列中,给我最简单的方法来实现这一点:
【问题讨论】:
-
我不想回答拆分它,我只想把结果值放在其他列中,请检查粘贴的图片,你会明白的,我清楚地说,我是没有对拆分做任何事情。并且这些值已经可用,我只需要更新到 Others2 列即可
-
获取 others2 列输出的标准是什么
-
update BarcodeTABLE set Others2=(case WHEN BARCODE_VALUE LIKE '%'+GTIN2+'%' THEN REPLACE(BARCODE_VALUE,GTIN2,'') WHEN BARCODE_VALUE LIKE '%'+HIBC+'%' THEN REPLACE( BARCODE_VALUE,HIBC,'') WHEN BARCODE_VALUE LIKE '%'+UPC+'%' THEN REPLACE(BARCODE_VALUE,UPC,'') ELSE BARCODE_VALUE END)
-
但这不能按我的需要正常工作
标签: sql sql-server