日期:2014-05-18  浏览次数:20513 次

求解释,关于函数的
SUBSTRING(CONVERT(VARCHAR(5),(ISNULL(MAX(CONVERT(INT,SUBSTRING(RECEIPTID,9,4))),0)+10001)),2,4) 
是什么意思啊??不是很懂,求高人指点

------解决方案--------------------
SUBSTRING(CONVERT(VARCHAR(5),(ISNULL(MAX(CONVERT(INT,SUBSTRING(RECEIPTID,9,4))),0)+10001)),2,4) 
从 RECEIPTID 中第9个数开始,取出4位,转换为int类型,取其最大值,(如为NULL,则为0),再加上10001,转换为字符串,取该字符串第2位开始的四位(即后四位).
------解决方案--------------------
探讨
SUBSTRING(CONVERT(VARCHAR(5),(ISNULL(MAX(CONVERT(INT,SUBSTRING(RECEIPTID,9,4))),0)+10001)),2,4)
从 RECEIPTID 中第9个数开始,取出4位,转换为int类型,取其最大值,(如为NULL,则为0),再加上10001,转换为字符串,取该字符串第2位开始的四位(即后四位).

------解决方案--------------------
SQL code

SUBSTRING --截取字段,第一个参数是起始位置,第二个参数是截取长度
CONVERT --类型转换 这里转成int+10001后又转成了varchar(5)
isnull --处理null,isnull(col,0),把null显示为0
MAX --求出列的最大值

------解决方案--------------------
探讨
SQL code


SUBSTRING --截取字段,第一个参数是起始位置,第二个参数是截取长度
CONVERT --类型转换 这里转成int+10001后又转成了varchar(5)
isnull --处理null,isnull(col,0),把null显示为0
MAX --求出列的最大值

------解决方案--------------------
探讨
SQL code

SUBSTRING --截取字段,第一个参数是起始位置,第二个参数是截取长度
CONVERT --类型转换 这里转成int+10001后又转成了varchar(5)
isnull --处理null,isnull(col,0),把null显示为0
MAX --求出列的最大值

------解决方案--------------------
SUBSTRING(CONVERT(VARCHAR(5),(ISNULL(MAX(CONVERT(INT,SUBSTRING(RECEIPTID,9,4))),0)+10001)),2,4) 
把上面这个一步步拆分了
先看SUBSTRING(RECEIPTID,9,4))),
再看CONVERT(INT,SUBSTRING(RECEIPTID,9,4))
再看MAX(CONVERT(INT,SUBSTRING(RECEIPTID,9,4)))
按上面兄弟给出的方法一步步去看