T SQL functions
来源:互联网 发布:linux gcc安装 编辑:程序博客网 时间:2024/06/07 11:31
0.cast varchar to int :
SELECT CAST(CAST('7082.7758172' as float) as int)
1.Left Padding with '0', total length is 8
REPLICATE('0', (8 - LEN(EXCHANGERATE))) + EXCHANGERATE
2.Right Padding, total length is 8
EXCHANGERATE +REPLICATE('0', (8 - LEN(EXCHANGERATE)))
3.Case when
(CASE WHEN LEN(EXCHANGERATE) =0
THEN '000000000000000000'
ELSE substring(RRRID,0,19)
END
)
AS exchangeRate,
4.CAST (CALL.TILLID is int, convert to VARCHAR)
SELECT CAST(CALL.TILLID AS VARCHAR ) TILLID
FROM ABC
5.POWER
SELECT
(CASE WHEN b.FOREIGNMINORUNIT>= 2
THEN ROUND((b.FOREIGNAMOUNT/POWER(10,b.FOREIGNMINORUNIT-2)),0)
ELSE ROUND((b.FOREIGNAMOUNT* POWER(10,2-b.FOREIGNMINORUNIT)),0)
END )
AS FOREIGNAMOUNT
FROM ABC b
6.Sample :
select /*
localMID ,
ForeignMID ,
localTID ,
foreignTID,
TillID,
INVOICENUMBER,
SETTLEMENTBATCHNUMBER,
FCCBatchNo,
AcquirerID,
--card1,
cardNumber,
TRANSACTIONDATE,
FCCPROCESSSTATUS,
baseCurrency,
baseAmount,
foreignCurrency,
foreignAmount,
exchangeRate,
AUTHORIZATIONMESSAGETYPE,
AUTHORIZATIONCODE,
CARDTYPE,
CLEARINGMODE,
(REPLICATE('0', (7 - LEN(cast(seqNo as varchar)))) + cast(seqNo as varchar) ) ,
Reserved,
refID
*/
localMID +
ForeignMID +
localTID +
foreignTID+
TillID+
INVOICENUMBER+
SETTLEMENTBATCHNUMBER+
FCCBatchNo+
AcquirerID+
--card1,
cardNumber+
TRANSACTIONDATE+
FCCPROCESSSTATUS+
baseCurrency+
baseAmount+
foreignCurrency+
foreignAmount+
exchangeRate+
AUTHORIZATIONMESSAGETYPE+
AUTHORIZATIONCODE+
CARDTYPE+
CLEARINGMODE+
(REPLICATE('0', (7 - LEN(cast(seqNo as varchar)))) + cast(seqNo as varchar) ) +
Reserved+
refID
from (
SELECT rank() OVER (ORDER BY callid asc) as seqNo,
--callid,
REPLICATE(' ', (15 - LEN(MERCHANTID))) + MERCHANTID localMID,
REPLICATE(' ', (15 - LEN(FOREIGNCURRENCYMERCHANTID))) +FOREIGNCURRENCYMERCHANTID ForeignMID,
REPLICATE(' ', (8 - LEN(TERMINALID))) + TERMINALID localTID,
(case when LEN(FOREIGNCURRENCYTERMINALID) <=8
then REPLICATE(' ', (8 - LEN(FOREIGNCURRENCYTERMINALID))) + FOREIGNCURRENCYTERMINALID
else substring(FOREIGNCURRENCYTERMINALID,0,9)
END
)AS foreignTID ,
REPLICATE('0', (6 - LEN(TILLID))) + TILLID TillID,
'0000000000' INVOICENUMBER,
'000000' SETTLEMENTBATCHNUMBER,
'000000' FCCBatchNo,
'1501' AcquirerID,
CARDNUMBER CARD1,
--CARDNUMBER +REPLICATE('0', (20 - LEN(CARDNUMBER))) cardNumber,
(case when len(CardNumber)<=20
then
CARDNUMBER + REPLICATE('0', (20 - LEN(CARDNUMBER)))
else substring(cardNumber,0,21)
END) AS CARDNUMBER,
TRANSACTIONDATE,
FCCPROCESSSTATUS,
REPLICATE('0', (4 - LEN(BASENUMISOCODE))) + BASENUMISOCODE baseCurrency,
REPLICATE('0', (12 - LEN(BASEAMOUNT))) + BASEAMOUNT baseAmount,
(case when len(foreignamount)=0 then '0000'
else REPLICATE('0', (4 - LEN(FOREIGNNUMISOCODE))) + FOREIGNNUMISOCODE
END) AS foreignCurrency,
(case when len(cast(foreignamount as varchar))=0 then '000000000000'
else REPLICATE('0', (12 - LEN(cast(foreignamount as varchar)))) + cast(foreignamount as varchar)
END) AS foreignAmount,
-- EXCHANGERATE,
(case when LEN(EXCHANGERATE) <8
then REPLICATE('0', (8 - LEN(EXCHANGERATE))) + EXCHANGERATE
else substring(EXCHANGERATE,0,9)
END
)AS exchangeRate,
/*
(case when LEN(EXCHANGERATE) <8
then REPLICATE('0', (8 - LEN(EXCHANGERATE))) + EXCHANGERATE
else substring(EXCHANGERATE,0,9)
END
)AS exchangeRate2, */
AUTHORIZATIONMESSAGETYPE,
AUTHORIZATIONCODE,
REPLICATE('0', (3 - LEN(CARDTYPE))) + CARDTYPE CARDTYPE,
CLEARINGMODE,
--'0000000' RcNumber, -- 7
'0' Reserved,
(case when LEN(EXCHANGERATE) =0
then '000000000000000000'
else substring(RRRID,0,19)
END
)AS refID
From
(
select --top 10
call.callid,
CALL.MERCHANTID,
CALL.TERMINALID,
--CALL.TILLID,
CAST(CALL.TILLID AS varchar) TILLID,
b.FOREIGNCURRENCYMERCHANTID,
b.FOREIGNCURRENCYTERMINALID,
substring(b.FOREIGNCURRENCYTERMINALID,0,9) FOREIGNCURRENCYTERMINALID_G ,
'0000000000' INVOICENUMBER,
'000000' SETTLEMENTBATCHNUMBER,
(CASE WHEN b.CARDNUMBER IS NULL
THEN '0000'
ELSE '0000'+b.CARDNUMBER
end) as CARDNUMBER,
b.CARDNUMBER CARDNUMBERoRI,
b.localtransactiondate RATERETRIEVALDATE,
substring(RRRID,19,14) TRANSACTIONDATE,
'00' FCCPROCESSSTATUS,
BASENUMISOCODE BASENUMISOCODE1,
(case when b.BASENUMISOCODE is null
then '0000'
else CAST(b.BASENUMISOCODE AS varchar)
end
) As BASENUMISOCODE,
CAST(b.BASEAMOUNT AS varchar) BASEAMOUNT,
--b.BASEMINORUNIT,--FIN1 Version 1.4
FOREIGNNUMISOCODE FOREIGNNUMISOCODE1,
(case when b.FOREIGNNUMISOCODE is null
then '0000'
else CAST(b.FOREIGNNUMISOCODE AS varchar)
end )AS FOREIGNNUMISOCODE,
--CAST(b.FOREIGNAMOUNT AS varchar) FOREIGNAMOUNT,
b.FOREIGNAMOUNT FOREIGNAMOUNT_ORI,
b.FOREIGNMINORUNIT,
(case when FOREIGNAMOUNT is null
then '0'
else
(case when b.FOREIGNMINORUNIT>= 2
then ROUND((b.FOREIGNAMOUNT/POWER(10,b.FOREIGNMINORUNIT-2)),0)
else ROUND((b.FOREIGNAMOUNT* POWER(10,2-b.FOREIGNMINORUNIT)),0)
end )
END)
AS FOREIGNAMOUNT ,
EXCHANGERATE EXCHANGERATE1,
(case when EXCHANGERATE is null
then '0'
else CAST(b.EXCHANGERATE AS varchar)
END )
AS EXCHANGERATE,
'00' AUTHORIZATIONMESSAGETYPE,
' 'AUTHORIZATIONCODE,
(case when b.CARDTYPE is null
then '000'
else b.CARDTYPE
end ) AS cardType,
'0' CLEARINGMODE,
b.RRRID
from call call, fccservicecall b
where localtransactiondate >'2014-06-20 00:00:00.000'
and
localtransactiondate <'2014-06-22 00:00:00.000'
and call.callid = b.callid
and actioncode='8800' and errormessage is null
--and call.acquirerid=1501
--and b.basenumisocode=978
--order by CALL.callid desc
)aa -- order by callid asc
)bb
- T SQL functions
- T-SQL Classic Date Functions
- SQL Functions
- SQL functions
- SQL Syntax - SQL FUNCTIONS
- SQL Functions Programmers Reference
- SQL Server-- Ranking functions
- Oracle SQL string functions
- Transact SQL User Defined Functions
- JSTL fmt/functions/sql用法
- T-SQL
- T-SQL
- T SQL
- T--SQL
- T-sql
- T-SQL
- T-SQL
- T-sql
- Oracle子查询
- jquery 判断一个控件的的类型
- Eclipse 快捷键指南
- 使用 sphinx 制作简洁而又美观的文档
- Linux 学习笔记 -- 第五部分 Linux 系统管理员 -- 第20章 启动流程、模块管理与 Loader
- T SQL functions
- Java 设计模式
- C#中的委托(为什么C#调用dll的回调函数用委托)
- 计算机是如何启动的
- IPsec ISAKMP协议
- C语言结构体基础知识
- 【myeclipse】MyEclipse 中各种 libraries 的含义
- java反射调用set和get方法的通用类
- Careercup | Chapter 5