根据 Table B 中列的值从 Table A 列中提取特定单词的 T-SQL 语法是什么?
What is the T-SQL syntax to extract a specific word from a column of Table A based on the value of a column in Table B?
我正在使用 SQL Server 2014,我在 Table A:
中有以下列(称为详细信息)
Details
STD RN
CPL DEL REV
DLX RN
FAS REV
CJS SUP REV
COS RN
我在 Table B:
中有一列(称为类别)
Category
STD
CPL DEL
DLX
FAS
CJS SUP
COS
我需要 运行 查询 Table A 以便我的输出如下:
Details Category
STD RN STD
CPL DEL REV CPL DEL
DLX RN DLX
FAS REV FAS
CJS SUP REV CJS SUP
COS RN COS
Table A 和 Table B 之间没有 link。有没有办法编写一个查询来查找 'Details' 中的单词Table A 如果它匹配 Table B 的 'Category' 列中的单词,那么它将输出 Table B?
的值
如果这些词的顺序始终相同(没有 DEL CPL
或 CPL REV DEL
)这应该很容易:
DECLARE @Details TABLE(Detail VARCHAR(100));
INSERT INTO @Details VALUES
('STD RN')
,('CPL DEL REV')
,('DLX RN')
,('FAS REV')
,('CJS SUP REV')
,('COS RN');
DECLARE @Categories TABLE(Category VARCHAR(100));
INSERT INTO @Categories VALUES
('STD')
,('CPL DEL')
,('DLX')
,('FAS')
,('CJS SUP')
,('COS');
SELECT d.Detail
,c.Category
FROM @Details AS d
INNER JOIN @Categories AS c ON d.Detail LIKE c.Category + '%'
这将合并具有相同开头的(所有)类别的所有详细信息。
结果
Detail Category
STD RN STD
CPL DEL REV CPL DEL
DLX RN DLX
FAS REV FAS
CJS SUP REV CJS SUP
COS RN COS
但老实说:你真正应该做的是改变设计!
我正在使用 SQL Server 2014,我在 Table A:
中有以下列(称为详细信息)Details
STD RN
CPL DEL REV
DLX RN
FAS REV
CJS SUP REV
COS RN
我在 Table B:
中有一列(称为类别)Category
STD
CPL DEL
DLX
FAS
CJS SUP
COS
我需要 运行 查询 Table A 以便我的输出如下:
Details Category
STD RN STD
CPL DEL REV CPL DEL
DLX RN DLX
FAS REV FAS
CJS SUP REV CJS SUP
COS RN COS
Table A 和 Table B 之间没有 link。有没有办法编写一个查询来查找 'Details' 中的单词Table A 如果它匹配 Table B 的 'Category' 列中的单词,那么它将输出 Table B?
的值如果这些词的顺序始终相同(没有 DEL CPL
或 CPL REV DEL
)这应该很容易:
DECLARE @Details TABLE(Detail VARCHAR(100));
INSERT INTO @Details VALUES
('STD RN')
,('CPL DEL REV')
,('DLX RN')
,('FAS REV')
,('CJS SUP REV')
,('COS RN');
DECLARE @Categories TABLE(Category VARCHAR(100));
INSERT INTO @Categories VALUES
('STD')
,('CPL DEL')
,('DLX')
,('FAS')
,('CJS SUP')
,('COS');
SELECT d.Detail
,c.Category
FROM @Details AS d
INNER JOIN @Categories AS c ON d.Detail LIKE c.Category + '%'
这将合并具有相同开头的(所有)类别的所有详细信息。
结果
Detail Category
STD RN STD
CPL DEL REV CPL DEL
DLX RN DLX
FAS REV FAS
CJS SUP REV CJS SUP
COS RN COS
但老实说:你真正应该做的是改变设计!