Forum: SQL |
Thema:
AW: AW: AW: Sortierung falsch angezeigt |
Von:
Berthold Neumann (
28.07.2006 11:16) |
Hallo,
so ganz auf die Schnelle, hier ein Lösungvorschlag per UDF:
Create FUNCTION Stufe (@input varchar (50),@stufe as integer)
RETURNS integer AS
BEGIN
declare @erg integer
declare @temp varchar (50)
declare @stelle integer
declare @ind integer
declare @zahl integer
set @temp = @input
set @ind = 0
while @ind < @stufe
begin
set @stelle = charindex('.',@temp)
set @zahl = 0
if @stelle <> 0
begin
set @zahl = left(@temp,@stelle-1)
set @temp = Substring(@temp,@stelle+1,50)
end
else
set @zahl = left(@temp,len(@temp))
if @stelle = 0 set @temp = ''
set @ind = @ind + 1
end
set @erg = @zahl
return @erg
END
Testaufruf sieht so aus:
declare @t as varchar(50)
set @t = '1.22.333456789.4444'
select @t, dbo.stufe(@t,5)
Die Order-Bedingung so:
order by dbo.stufe(Nr,1), dbo.stufe(Nr,2), dbo.stufe(Nr,3), dbo.stufe(Nr,4)
Gruß
Berthold Neumann
Betreff |
Von |
Datum |
|
|
Martin
Mostögl
|
28.07.2006 11:32 |
|
|
Martin
Mostögl
|
10.08.2006 13:39 |
|
|
AW: AW: AW: AW: AW: AW: Sortierung falsch...
Hi,<br>keine Ahnung ob das schneller geht oder dir diese Art der Lösung überhaupt gefällt :-)<br><br>create function testo(@_wert nvarchar(500), @_laenge integer) Returns nvarchar(500) as<br>begin <br>declare... |
|
|
|
|
|
Thomas
Golla
|
11.08.2006 09:14 |
|
|
Martin
Mostögl
|
11.08.2006 10:35 |
|
|
Martin
Mostögl
|
11.08.2006 11:55 |
|
|
AW: AW: AW: AW: AW: AW: AW: AW: Sortierung...
Hi, falls du meine Idee meintest :-)<br><br>ich wandele einfach die Zahlen in einen nvarchar mit fester Länge um und diese werden dann sortiert.<br>Die fehlenden Stellen der variablen werden von links mit 0... |
|
|
|
|
|
Thomas
Golla
|
11.08.2006 12:19 |
|
|
Martin
Mostögl
|
11.08.2006 13:25 |
|
|
Antworten
Vorsicht bei der Eingabe: Die Zeichen ' oder -- sind nicht erlaubt!