SQL Server列
我有一个表SQL Server列,sql,sql-server,Sql,Sql Server,我有一个表ClassificationCode,它有列: CodeName和我拥有的代码的大陆名称 CodeType及其代码类型从1到5,每个数字都引用代码名 当我使用where条件来指定它的名称时 Select code name from classification code where code type = 2 ; 我的问题是,如果我可以重复代码名在不同的条件下像这样 Select code name, code name as 2, code name as 3
ClassificationCode
,它有列:
和我拥有的代码的大陆名称CodeName
及其代码类型从1到5,每个数字都引用代码名CodeType
Select code name
from classification code
where code type = 2 ;
我的问题是,如果我可以重复代码名在不同的条件下像这样
Select
code name, code name as 2, code name as 3
from
classification code
where
code type = 2 And code type = 3 and code type=4...
如果我对你的问题理解正确,你有两个选择。首先,如果需要多行,请在中使用
(这相当于或
而不是和
):
或者,如果您试图将结果透视到一行中,这里有一个使用条件聚合的选项:
select max(case when code_type = 2 then code_name end) code_name_1,
max(case when code_type = 3 then code_name end) code_name_2,
max(case when code_type = 4 then code_name end) code_name_3
from classification_code
where code_type in (2,3,4)
你想完成什么?你在这里的意思一点也不清楚。这将是一个很好的起点。使用deffrent datashow us样本数据和预期输出查询选择代码名三次以上。从[classification code]中选择[code name],其中(2,3,4)
中的[code type]将返回3行。这是你需要的吗?
select max(case when code_type = 2 then code_name end) code_name_1,
max(case when code_type = 3 then code_name end) code_name_2,
max(case when code_type = 4 then code_name end) code_name_3
from classification_code
where code_type in (2,3,4)