Hej igen Hej, eftersom jag inte vet vad det är för system det skall göras i så blir det lite svårt att komma med förslag. Dock finns alltid funktionen SPLIT som kan användas till ganska mycket, ex:Dela upp förnamn och efternamn i 2 nya fält
Det är möjligt att min fråga är enkel.
Jag har en stor tabell från ett medlemsregister där både förnamn och efternamn står i samma fält
Det jag vill göra att dela upp det till 2 fält "Fnamn" och "Enamn" i stället för att som idag ligga i ett fält
Hur gör man det på ett enkelt sätt i en fråga? Förnamn och efternam är separerat med ett mellanslag
Tack på förhand
Ps lyckades stoppa in den här frågan i fel forumSv: Dela upp förnamn och efternamn i 2 nya fält
Eller om det är databas kanske du kan göra så här
SELECT * FROM dbo.StrSplit('91,12,65,78,56,789',',')
or you can use it for your purpose:
SELECT (SELECT Element FROM dbo.StrSplit('2009-02-27','-') WHERE rowid=0) AS Y
, (SELECT Element FROM dbo.StrSplit('2009-02-27','-') WHERE rowid=1) AS M
, (SELECT Element FROM dbo.StrSplit('2009-02-27','-') WHERE rowid=2) AS D
, (SELECT Element FROM dbo.StrSplit('14:30:53',':') WHERE rowid=0) AS H
, (SELECT Element FROM dbo.StrSplit('14:30:53',':') WHERE rowid=1) AS M
, (SELECT Element FROM dbo.StrSplit('14:30:53',':') WHERE rowid=2) AS S
Here is the definition:
CREATE FUNCTION dbo.StrSplit ( @pvsString VARCHAR(MAX), @pvsSeparator CHAR(1) )
RETURNS @fnorsList TABLE ([rowid] INT, [Element] NVARCHAR(500))
AS
BEGIN
DECLARE @vsElement NVARCHAR(255)
DECLARE @viPos INT
DECLARE @viRow INT SET @viRow = 0
WHILE CHARINDEX( @pvsSeparator, @pvsString) > 0
BEGIN
SELECT @viPos = CHARINDEX(@pvsSeparator, @pvsString)
SELECT @vsElement = SUBSTRING(@pvsString, 1, @viPos-1)
INSERT INTO @fnorsList ([rowid], [Element]) SELECT @viRow, @vsElement
SELECT @pvsString = SUBSTRING(@pvsString, @viPos+1, LEN(@pvsString)-@viPos)
SET @viRow = @viRow + 1
END
INSERT INTO @fnorsList ([rowid], [Element]) SELECT @viRow, @vsElement
RETURN
END