有如下表ID,码表, 字段1, 字段2,字段3,条件一般的select查询是
1 A1 38 48 58 0
2 A1 12 2 56 1
3 A1 34 5 59 2我能不能查如下边这样的结果呢码表 条件 内容
A1 0 38
A1 1 48
A1 2 59
就是根据条件这个字段,分别取 字段1、字段2、字段3 ,以内容这样的一列查出来
1 A1 38 48 58 0
2 A1 12 2 56 1
3 A1 34 5 59 2我能不能查如下边这样的结果呢码表 条件 内容
A1 0 38
A1 1 48
A1 2 59
就是根据条件这个字段,分别取 字段1、字段2、字段3 ,以内容这样的一列查出来
码表,
case 条件
when 0 then 字段1
when 1 then 字段2
when 2 then 字段3
else 0
end as 内容
from 表名
我看不行要用动态的吧!
不过SQL 视图分析器不通过case when
实在没办法,不知道怎么做了。
create view vTest
as
select
码表,
case 条件
when 0 then 字段1
when 1 then 字段2
when 2 then 字段3
else 0
end as 内容
from 表名
go
CREATE TABLE T1(ID INT,F1 VARCHAR(10),F2 INT,F3 INT,F4 INT,F5 INT)
INSERT T1 SELECT 1,'A1',38,48,59,0
UNION ALL SELECT 2,'A1',12,2,56,1
UNION ALL SELECT 3,'A1',34,5,59,2
--TEST
SELECT * FROM
(
SELECT ID,F1 AS '码表',F5 AS '条件',F2 AS '内容' FROM T1
UNION ALL
SELECT ID,F1 AS '码表',F5 AS '条件',F3 AS '内容' FROM T1
UNION ALL
SELECT ID,F1 AS '码表',F5 AS '条件',F4 AS '内容' FROM T1) A
WHERE A.ID=1