Wie wird das Präfix automatisch von (00 bis 99) erhöht, wenn der gleiche Name kommt?Präfix Inkrement vor dem gleichen Namen
ex:- Kiran,Kiran,Kiran
Then
ANS:= 01 Kiran
02 Kiran
etc
note = kein Platz
Wie wird das Präfix automatisch von (00 bis 99) erhöht, wenn der gleiche Name kommt?Präfix Inkrement vor dem gleichen Namen
ex:- Kiran,Kiran,Kiran
Then
ANS:= 01 Kiran
02 Kiran
etc
note = kein Platz
Mithilfe der split string functions von hier:
declare @str varchar(max)
set @str='Kiran,Kiran,Kiran'
;with cte
as
(
select *, row_number() over (partition by item order by item)as rn
from [dbo].[SplitStrings_Numbers](@str,',')
)
select item,
case when rn<10 then '0' +cast(rn as varchar(2)) else cast(rn as varchar(2)) end from cte
Ausgang:
item (No column name)
Kiran 01
Kiran 02
Kiran 03
Wenn es meine Parser-Funktion bereits gibt die Reihenfolge hilft . Zum Beispiel:
Declare @String varchar(max)='Kiran,Kiran,Kiran'
Select * from [dbo].[udf-Str-Parse](@String,',')
Returns
Key_PS Key_Value
1 Kiran
2 Kiran
3 Kiran
Jetzt, mit einem kleinen Twist, können Sie Ihre gewünschten Ergebnisse zu formatieren
Select Seq= RIGHT('00'+cast(Key_PS as varchar(10)),2),ParseVal=Key_Value from [dbo].[udf-Str-Parse](@String,',')
Returns
Seq ParseVal
01 Kiran
02 Kiran
03 Kiran
Die UDF
CREATE FUNCTION [dbo].[udf-Str-Parse] (@String varchar(max),@Delimeter varchar(10))
--Usage: Select * from [dbo].[udf-Str-Parse]('Dog,Cat,House,Car',',')
-- Select * from [dbo].[udf-Str-Parse]('John Cappelletti was here',' ')
-- Select * from [dbo].[udf-Str-Parse]('id26,id46|id658,id967','|')
-- Select * from [dbo].[udf-Str-Parse]('Kiran,Kiran,Kiran',',')
Returns @ReturnTable Table (Key_PS int IDENTITY(1,1) NOT NULL , Key_Value varchar(max))
As
Begin
Declare @intPos int,@SubStr varchar(max)
Set @IntPos = CharIndex(@Delimeter, @String)
Set @String = Replace(@String,@[email protected],@Delimeter)
While @IntPos > 0
Begin
Set @SubStr = Substring(@String, 0, @IntPos)
Insert into @ReturnTable (Key_Value) values (@SubStr)
Set @String = Stuff(@String, 1, Len(@[email protected]), '');
Set @IntPos = CharIndex(@Delimeter, @String)
End
Insert into @ReturnTable (Key_Value) values (@String)
Return
End
Bitte lesen Sie [diese] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum /) für einige Tipps zur Verbesserung Ihrer Frage. – HABO