表A city money
北京 100
天津 200
上海 300
北京 200
天津 300
上海 200
结果 城市1 城市2 钱 北京 (空) 100
(空) 天津 200
北京 (空) 200
(空) 天津 300求 sql 语句 不考虑上海
北京 100
天津 200
上海 300
北京 200
天津 300
上海 200
结果 城市1 城市2 钱 北京 (空) 100
(空) 天津 200
北京 (空) 200
(空) 天津 300求 sql 语句 不考虑上海
INSERT @TB
SELECT N'北京', 100 UNION ALL
SELECT N'天津', 200 UNION ALL
SELECT N'上海', 300 UNION ALL
SELECT N'北京', 200 UNION ALL
SELECT N'天津', 300 UNION ALL
SELECT N'上海', 200SELECT CASE WHEN CITY=N'北京' THEN N'北京' ELSE N'' END AS C1,
CASE WHEN CITY=N'天津' THEN N'天津' ELSE N'' END AS C2,MONEY
FROM @TB
WHERE CITY<>N'上海'
/*
C1 C2 MONEY
---- ---- -----------
北京 100
天津 200
北京 200
天津 300
*/
城市2=CASE WHEN CITY=N'天津' THEN N'天津' ELSE N'' END ,MONEY
FROM tb
WHERE CITY<>'上海'
这个事解决方法
在字符串前面加上N
select * from tb where Title=N'上海'
城市2=case city when '天津' then '天津' else '' end,
[MONEY]
FROM @T
WHERE CITY<>'上海'
INSERT #TB11
SELECT N'北京', 100 UNION ALL
SELECT N'天津', 200 UNION ALL
SELECT N'上海', 300 UNION ALL
SELECT N'北京', 200 UNION ALL
SELECT N'天津', 300 UNION ALL
SELECT N'上海', 200select (case when CITY='北京' then N'北京' else '' end) '北京',
(case when CITY='天津' then N'天津' else '' end) '天津',
money
from #TB11 where CITY<>'上海'
北京 天津 money
---- ---- -----------
北京 100
天津 200
北京 200
天津 300(4 行受影响)
SELECT 城市1=CASE WHEN CITY=N'北京' THEN N'北京' ELSE N'' END ,
城市2=CASE WHEN CITY=N'天津' THEN N'天津' ELSE N'' END ,
MONEY
FROM tb
WHERE CITY<>'上海'