在SQL中打印列文本 [英] Printing Column text in SQL
本文介绍了在SQL中打印列文本的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
亲爱的,
我有一个名为Dummy的表,在该列上是Dm_Ex,Dm_SL,Dm_Ad所有数据类型都是数字。
我想要的是Dm_Ex> 0然后'Ex'如果Dm_SL> 0然后'SL'如果Dm_Ad> 0然后'AD'
Dm_Ex Dm_SL Dm_Ad结果想要
1 0 1 EX,AD
1 1 1 EX,SL,AD
0 1 1 SL,AD
1 0 0 EX
我用过案例但没有成功。
CASE WHEN Dm_Ex> 0 那么 ' EX' WHEN Dm_SL> 0 那么 ' SL' WHEN Dm_Ad> 0 那么 ' AD' ELSE ' N / A' END
谢谢
Basit。
解决方案
如果值总是零或一,那么我会作弊。
我将创建一个映射表:
值结果
0 N / A
1 AD
2 SL
3 SL,AD
4 EX
5 EX,AD
6 EX,SL
7 EX,SL,AD
只需使用一个简单的JOIN:
SELECT d。*,m.Result FROM Dummy d
JOIN MapText m
ON (d.Dm_Ex * 4 )+(d.Dm_SL * 2 )+ d.Dm_Ad = m.Value
Dear,
I have a table called Dummy, On that column are Dm_Ex, Dm_SL, Dm_Ad all data type numeric.
What I want if Dm_Ex>0 then ‘Ex’ if Dm_SL>0 then ‘SL’ if Dm_Ad>0 then ‘AD’
Dm_Ex Dm_SL Dm_Ad Result Want
1 0 1 EX,AD
1 1 1 EX,SL,AD
0 1 1 SL,AD
1 0 0 EX
I used case but not success.
CASE WHEN Dm_Ex > 0 THEN 'EX' WHEN Dm_SL > 0 THEN 'SL' WHEN Dm_Ad > 0 THEN 'AD' ELSE 'N/A' END
Thanks
Basit.
解决方案
If the values are always zero or one, then I'd cheat, a bit.
I'd create a Mapping table:
Value Result 0 N/A 1 AD 2 SL 3 SL,AD 4 EX 5 EX,AD 6 EX,SL 7 EX,SL,AD
And just use a trivial JOIN:
SELECT d.*, m.Result FROM Dummy d JOIN MapText m ON (d.Dm_Ex * 4) + (d.Dm_SL * 2) + d.Dm_Ad = m.Value
这篇关于在SQL中打印列文本的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文