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