1

文字列の「/」記号の後の最初の次の文字を大文字に変換する方法について質問があります。

例として:

CustomerName:ramayanan s/o vicky ratnam

最初に適切なケースで必要なので、これを使用します:

Update
dbo.table set CustomerName = dbo.ProperCase(CustomerName)

結果 :Ramayanan S/o Vicky Ratnam

しかし、私はそれを次のようにする必要があります:(Ramayanan S/O Vicky Ratnamの後の最初の文字はにある/必要がありますuppercase)

4

4 に答える 4

1

チェックしてください:

declare @T table(Insurance varchar(max))

insert into @T values ('roeselare')
insert into @T values ('BRUGGE')
insert into @T values ('ramayanan s/o vicky ratnam')

select (
       select upper(T.N.value('.', 'char(1)'))+
                lower(stuff(T.N.value('.', 'varchar(max)'), 1, 1, ''))+(CASE WHEN RIGHT(T.N.value('.', 'varchar(max)'), 1)='/' THEN '' ELSE ' ' END)
       from X.InsXML.nodes('/N') as T(N)
       for xml path(''), type
       ).value('.', 'varchar(max)') as Insurance
from 
  (
  select cast('<N>'+replace(
            replace(
                Insurance, 
                '/', '/</N><N>'),
            ' ', '</N><N>')+'</N>' as xml) as InsXML
  from @T
  ) as X
于 2013-05-13T05:27:35.650 に答える
0
    Drop Table #Temp
    Create Table #Temp
    (
    CustomerName varchar(100)
    ) 

    Insert into #Temp
    values('Ramayanan S/o vicky ratnam')

    Select * from #temp

    Select  UPPER(SUBSTRING(CustomerName, CHARINDEX('/',CustomerName),2)),REPLACE( CustomerName ,
                               SUBSTRING(CustomerName, CHARINDEX('/',CustomerName),2),
                               UPPER(SUBSTRING(CustomerName, CHARINDEX('/',CustomerName),2))) from #temp


    UPDATE dbo.#Temp
    SET CustomerName = REPLACE( CustomerName ,
                               SUBSTRING(CustomerName, CHARINDEX('/',CustomerName),2),
                               UPPER(SUBSTRING(CustomerName, CHARINDEX('/',CustomerName),2))); 

     Select * from #temp                          
于 2013-05-13T05:37:10.513 に答える
0
Update dbo.table set CustomerName = REPLACE(CustomerName ,'/o','/O')
于 2013-05-13T04:40:53.213 に答える