SQL的case when问题

2025-03-07 10:33:47
推荐回答(4个)
回答1:

USE tempdb 
GO
IF OBJECT_ID('TA') IS NOT NULL
DROP TABLE TA
CREATE TABLE TA
(
产品 NVARCHAR(10),
编号 NVARCHAR(10),
公司 NVARCHAR(10),
价格 INT)
GO
INSERT INTO TA 
SELECT '1','A','11',1 UNION ALL
SELECT '2','B','11',2 UNION ALL
SELECT '3','C','22',3 UNION ALL
SELECT '1','A','22',4 
GO
SELECT * FROM TA A
WHERE  NOT
(A.公司 ='22' AND 
EXISTS (SELECT * FROM TA B WHERE B.编号 =A.编号 AND B.公司 ='11')
)

回答2:

先说一下  表为test2

从第一列到第四列分别是 c1  c2  c3   c4

select c1 as '产品',c2 as '编号',
          (case  c3 when '11'  then c4 when '22' then c4 end) as '价格'
  from test2
where 1=1
group by c1,c2

回答3:

select case 公司 when 11 then 1
when 22 then 2
else 0 end ,公司 from table_name group by 公司

回答4:

select   产品 ,编号,case  when 公司 ='11' then ‘11’ else '22' end  as 公司,价格
from 表名