SQLServer2008中的子字符串
从下表中SQLServer2008中的子字符串,sql,sql-server,tsql,Sql,Sql Server,Tsql,从下表中 date description amount 29/12/13 <13363000054123>JIT BAHADUR LAMICHHANE CR 10,000.00 TBI 29/12/13 29/12/13 29/12/13 <13363740800138>MAN BAHADUR . CR
date description amount
29/12/13 <13363000054123>JIT BAHADUR LAMICHHANE CR 10,000.00 TBI 29/12/13 29/12/13
29/12/13 <13363740800138>MAN BAHADUR . CR 1,19,595.00 TBI 29/12/13 29/12/13
29/12/13 <555349302906>CHANDRA PRASAD DAHAL CR 24,054.30 TBI 29/12/13 29/12/13
29/12/13 <13362144250203>BISHNU GURUNG DHAN CR 1,30,562.00 TBI 29/12/13 29/12/13
日期描述金额
2013年12月29日JIT BAHADUR Lamichane CR 10000.00 TBI 2013年12月29日12月13日
2013年12月29日曼巴哈杜尔。CR 119955.00待定29/12/13 29/12/13
13年12月29日CHANDRA PRASAD DAHAL CR 24054.30待定29年12月13日29年12月13日
2013年12月29日BISHNU GURUNG DHAN CR 1,30562.00 TBI 2013年12月29日
我需要下面的记录
date description amount
29/12/13 <13363000054123> CR 10,000.00
29/12/13 <13363740800138> CR 1,19,595.00
日期描述金额
2013年12月29日CR 10000.00
13年12月29日CR 119595.00
我尝试了子字符串,但无法在“金额”列上固定字符串大小。您可以使用什么方法来分割金额。
但是你的模式是非常错误的,你应该努力避免这些问题。你可以用它来分割金额。
但是你的模式是非常错误的,你应该努力避免这些问题。你可以用它来分割金额。
但是你的模式是非常错误的,你应该努力避免这些问题。你可以用它来分割金额。
但是你的模式是非常错误的,你应该努力避免这些问题。这会产生你规定的信息
Declare @S varchar(50)
Declare @T varchar(50)
Select @S = '<13363000054123>JIT BAHADUR LAMICHHANE', @T = 'CR 10,000.00 TBI 29/12/13 29/12/13'
Select SUBSTRING(@S, 1, PATINDEX('%>%', @S)), SUBSTRING(@T, 1, PATINDEX('% TBI%', @T))
这将生成您规定的信息
Declare @S varchar(50)
Declare @T varchar(50)
Select @S = '<13363000054123>JIT BAHADUR LAMICHHANE', @T = 'CR 10,000.00 TBI 29/12/13 29/12/13'
Select SUBSTRING(@S, 1, PATINDEX('%>%', @S)), SUBSTRING(@T, 1, PATINDEX('% TBI%', @T))
这将生成您规定的信息
Declare @S varchar(50)
Declare @T varchar(50)
Select @S = '<13363000054123>JIT BAHADUR LAMICHHANE', @T = 'CR 10,000.00 TBI 29/12/13 29/12/13'
Select SUBSTRING(@S, 1, PATINDEX('%>%', @S)), SUBSTRING(@T, 1, PATINDEX('% TBI%', @T))
这将生成您规定的信息
Declare @S varchar(50)
Declare @T varchar(50)
Select @S = '<13363000054123>JIT BAHADUR LAMICHHANE', @T = 'CR 10,000.00 TBI 29/12/13 29/12/13'
Select SUBSTRING(@S, 1, PATINDEX('%>%', @S)), SUBSTRING(@T, 1, PATINDEX('% TBI%', @T))
尝试CHARINDEX和SUBSTRING的组合。假设金额的格式为“xxx.xx”
SELECT date,
LEFT(description, Charindex ('>', description)),
LEFT(amount, Charindex ('.', amount))
+ Substring(amount, Charindex ('.', amt)+1, 2)
FROM tbl
尝试CHARINDEX和SUBSTRING的组合。假设金额的格式为“xxx.xx”
SELECT date,
LEFT(description, Charindex ('>', description)),
LEFT(amount, Charindex ('.', amount))
+ Substring(amount, Charindex ('.', amt)+1, 2)
FROM tbl
尝试CHARINDEX和SUBSTRING的组合。假设金额的格式为“xxx.xx”
SELECT date,
LEFT(description, Charindex ('>', description)),
LEFT(amount, Charindex ('.', amount))
+ Substring(amount, Charindex ('.', amt)+1, 2)
FROM tbl
尝试CHARINDEX和SUBSTRING的组合。假设金额的格式为“xxx.xx”
SELECT date,
LEFT(description, Charindex ('>', description)),
LEFT(amount, Charindex ('.', amount))
+ Substring(amount, Charindex ('.', amt)+1, 2)
FROM tbl
请在“描述”列中尝试此选项
SELECT
date,
SUBSTRING(description, 0,charindex('>',description)+1) as description
from
@table
请在“描述”列中尝试此选项
SELECT
date,
SUBSTRING(description, 0,charindex('>',description)+1) as description
from
@table
请在“描述”列中尝试此选项
SELECT
date,
SUBSTRING(description, 0,charindex('>',description)+1) as description
from
@table
请在“描述”列中尝试此选项
SELECT
date,
SUBSTRING(description, 0,charindex('>',description)+1) as description
from
@table
抱歉,在什么条件下过滤行?抱歉,在什么条件下过滤行?抱歉,在什么条件下过滤行?抱歉,在什么条件下过滤行?虽然我同意模式充其量是有问题的,但OP(或后来从搜索中找到此答案的人)说它完全错误的值是什么,但是没有解释为什么或者给出一个如何改进的例子?你是对的。我考虑了模式规范化:[link]实际金额应该单独在一列中('10000.00'而不是'CR 10000.00'例如),虽然我同意模式最多是有问题的,但OP的值是多少(或者后来从搜索中找到这个答案的人)说这是非常错误的,但没有解释原因或给出如何改进的示例?你是对的。我考虑了模式规范化:[link]实际金额应该单独列在一列中('10000.00'而不是'CR 10000.00'))虽然我同意模式充其量是有问题的,但OP(或后来从搜索中找到答案的人)说这是完全错误的,但没有解释原因或给出如何改进的示例,这对他们有什么价值?你是对的。我考虑过模式规范化:[link]真正的数量应该单独列在一列中('10000.00'而不是'CR 10000.00'例如)虽然我同意模式充其量是有问题的,但OP(或后来从搜索中找到这个答案的人)说这是非常错误的,但没有解释为什么或给出如何改进的示例,这对他们有什么价值?你是对的。我考虑了模式规范化:[link]实际金额应单独列在一列中(“10 000.00”而不是“10 000.00”例如)TBI不固定它可能有abc,xyz anythingTBI不固定它可能有abc,xyz anythingTBI不固定它可能有abc,xyz anythingTBI不固定它可能有abc,xyz anythingTBI不固定它可能有abc,xyz anything