假设我有一张像这样的桌子:
(0表示现金,任何其他值表示check serial number
)
ID NAME PaymentMethod Amount Bank
------------------------------------------------------------
1 Alex 0 20 ''
2 Sara 123456789 5000 Bank of America
3 Mina 0 15 ''
4 Scott 987456321 10000 Citibank
如何使用IF
语句,以便如果该PaymentMethod
列包含0
我隐藏该列,而是显示一个值为 of 的列Incash
并隐藏银行列。
当PaymentMethod
还有其他内容时,我只需将列标题重命名为CheckSerial
.
为了更清楚,我希望表格看起来像这样;对于那些已经付款的人InCash
,它显示为:
ID NAME PaymentMethod Amount
-------------------------------------------
1 Alex InCash 20
3 Mina InCash 15
对于那些通过支票支付的人,它显示为:
ID NAME PaymentMethod Serial Number Amount Bank
-------------------------------------------------------------------
2 Sara Check 123456789 5000 Bank of America
4 Scott Check 987456321 10000 Citibank
我尝试了这样的事情,根据给定的 ID,只有一个 select 语句执行:
ALTER FUNCTION dbo.Function1(@IDTag bigint)
RETURNS TABLE
AS
if PaymentMethod = 0
BEGIN
RETURN SELECT ID, Name , PaymentMethod = InCash , Amount
FROM tblTest
WHERE (ID = @IDTag)
END
ELSE
BEGIN
RETURN SELECT ID, Name , PaymentMethod ='By Check', PaymentMethod As [Serial number], Amount, Bank
FROM tblTest
WHERE (ID = @IDTag)
END
这甚至正确吗?如果这不可行或不合逻辑,您对此有何建议?