如何在SQL Server中使用选择大小写 [英] how to use select case in sql server

查看:158
本文介绍了如何在SQL Server中使用选择大小写的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用下面的代码获取支付现金和使用卡支付的客户的详细信息,
使用这个我可以显示它是现金还是卡.但是客户需要如果有卡,则需要出示卡号和银行名称.,我被打到这里了,请帮助我.,提前谢谢.,



using below code getting details of customer who paid cash and who paid using card,
using this i can show whether its cash or card. but client need if card then need to show card no and bank name., i am getting struck here please help me out., thanx in advance.,



DELCARE @TEMPTABLE TABLE
(
CUSNAME NVARCHAR(450),
PAYMENT_MODE nvarchar(250),
CARDNO nvarchar(450),
BANKNAME nvarchar(450),
)

INSERT INTO @TEMPTABLE
(
CUSNAME,PAYMENT_MODE,CARDNO,BANKNAME
)

SELECT CUSNAME,

CASE (PAYMENTMODE)
WHEN 1 THEN 'CASH'

   --here i dont want to show anything 

WHEN 2 THEN 'CARD'
     --here i have to display cardno and bankname [store into @temptable]

ELSE 'UNKNOWN'

END

FROM PAYMENT_DETAILS 


SELECT * FROM  @TEMPTABLE

推荐答案

尝试:

选择CUSNAME,CASE(PAYMENTMODE)
当1 THEN``现金''
当2 THEN''CARD''+ CARDNO +''''+ BANKNAME
ELSE``未知''
END
FROM PAYMENT_DETAILS
Try :

SELECT CUSNAME, CASE (PAYMENTMODE)
WHEN 1 THEN ''CASH''
WHEN 2 THEN ''CARD''+CARDNO+'' ''+BANKNAME
ELSE ''UNKNOWN''
END
FROM PAYMENT_DETAILS


这里有更优化的解决方案


Here more optimized solution


INSERT INTO @TEMPTABLE
(
	CUSNAME,PAYMENT_MODE,CARDNO,BANKNAME
)
 
SELECT CUSNAME,

PAYMENTMODE,

CASE (PAYMENTMODE)
WHEN 1 THEN ''
WHEN 2 THEN PAYMENT_DETAILS.CARDNO
ELSE 'UNKNOWN'
END,

CASE (PAYMENTMODE)
WHEN 1 THEN ''
WHEN 2 THEN PAYMENT_DETAILS.BANKNAME
ELSE 'UNKNOWN'
END

FROM PAYMENT_DETAILS


尝试此

TRY THIS

DECLARE @TEMPTABLE TABLE
(
CUSNAME NVARCHAR(450),
PAYMENT_MODE nvarchar(250),
CARDNO nvarchar(450),
BANKNAME nvarchar(450)
)

INSERT INTO @TEMPTABLE
(
CUSNAME,PAYMENT_MODE,CARDNO,BANKNAME
)
SELECT 
PAYMENT_DETAILS.CUSNAME,
'CASH',
'',
''
FROM PAYMENT_DETAILS where PAYMENTMODE = 'CASH'


INSERT INTO @TEMPTABLE
(
	CUSNAME,PAYMENT_MODE,CARDNO,BANKNAME
)
SELECT 
PAYMENT_DETAILS.CUSNAME,
'CARD',
PAYMENT_DETAILS.CARDNO,
PAYMENT_DETAILS.BANKNAME
 
FROM PAYMENT_DETAILS where PAYMENTMODE = 'CARD'


INSERT INTO @TEMPTABLE
(
	CUSNAME,PAYMENT_MODE,CARDNO,BANKNAME
)
SELECT 
PAYMENT_DETAILS.CUSNAME,
'UNKNOWN',
'',
''
 
FROM PAYMENT_DETAILS where PAYMENTMODE != 'CARD' AND PAYMENTMODE != 'CASH'

SELECT * FROM @TEMPTABLE


这篇关于如何在SQL Server中使用选择大小写的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

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