在SQL中打印列文本 [英] Printing Column text in SQL

查看:66
本文介绍了在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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆