Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


MSSQL 2005 kasta om en sträng.

Postades av 2008-11-27 18:15:35 - Gert Lindholm, i forum sql-server/msde, Tråden har 12 Kommentarer och lästs av 1362 personer

Jag har ett datumt.ex 891031 som jag skulle vilja spara som 311089 hur skriver man för att kasta om en sträng?


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-11-27 20:50:06 - Cecilia Wirén

SQL kommandot REVERSE( ... )


Svara

Sv:MSSQL 2005 kasta om en sträng.

Postades av 2008-11-27 21:47:46 - Stefan Brännström

REVERSE(...) ger väl 130198, dvs en "baklängessträng"?

Borde inte SUBSTRING(...) vara bättre, ex:
<info>
SUBSTRING('891031',5,2) + SUBSTRING('891031',3,2) + SUBSTRING('891031',1,2)
</info>


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-11-27 22:21:41 - Cecilia Wirén

så klart, helt rätt Stefan


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 00:18:00 - Håkan Borneland

what the heck... just for the fun...
The more (ways to do it) the merrier. :-)
<code>
SELECT RIGHT('891031', 2) + SUBSTRING('891031',3,2) + LEFT('891031', 2);
SELECT REPLACE(CONVERT(varchar(8), CAST('891031' AS datetime), 105), '-', '');
</code>


Svara

Sv:MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 10:21:58 - Ola Lindfeldt

Eller..

SELECT REPLACE(convert(varchar(8),convert(smalldatetime, '891031', 1),4),'.','')

(snarlikt Håkans 2:a förslag, men sparar två tecken på att inte konvertera med sekelsiffror samt sparar 4 bytes på smalldatetime.. )

Men Right .. Substring .. Left är ju lite lättare att läsa .. och antagligen snabbare...


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 11:24:37 - Gert Lindholm

Tack för era svar:

Jag håller på med en sp som skall skapa ett ID med LicNbr baserat på om Det är en Man 'M' kvinna 'K'
födelseår t.ex '89-10-31' Sedan FirstName

Det blev såhär:

SET @parmLicNbr = @parmMaleFemale +SUBSTRING(@parmAge,7,2) + SUBSTRING(@parmAge,4,2) + SUBSTRING(@parmAge,1,2) + UPPER(SubString(@parmFirstName,1,3))


Vad jag sedan skall lägga på är ett löpnummer 01,02,osv baserat på vad som redan finns i den aktuella tabellen bo_Licence.
Och sedan skapa en ny post utifrån LicNbr, jag söker rätt på det LicNbr som är störst genom,
SELECT MAX(LicNbr) AS ValLicNbr FROM bo_Licence WHERE LicNbr Like @parmLicNbr + '%'


Men jag får felmeddelande när jag skviver
SET @parmLicNbr = @parmLicNbr + MAX(LicNbr) + 1;
Invalid column name, har även provat att skriva MAX(ValLicNbr) + 1

Någon som har förslag på hur jag skapar posten i tabellen bo_Licence?


Svara

Sv:MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 11:28:50 - Ola Lindfeldt

Tilldela MAX() till en variabel först, sen kan du använda den i SET

SELECT @MaxLicNbr = MAX(LicNbr)
FROM bo_Licence WHERE ....


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 12:12:53 - Gert Lindholm

Ola jag får ingen träff i tabellen. med @parmLicNbr + '%'
<code c#>
DECLARE @parmAge nchar(8)
DECLARE @parmMaleFemale nvarchar (1)
DECLARE @parmLicNbr char(12)
DECLARE @parmFirstName nvarchar(50)
SET @parmAge = '60-03-18';
SET @parmMaleFemale = 'M';
SET @parmFirstName = 'Gert';
SET @parmLicNbr = @parmMaleFemale +SUBSTRING(@parmAge,7,2) + SUBSTRING(@parmAge,4,2) + SUBSTRING(@parmAge,1,2) + UPPER(SubString(@parmFirstName,1,3));
PRINT @parmLicNbr Om jag kör hit så blir @parmLicNbr ='M180360GER'
SELECT * FROM bo_Licence WHERE LicNbr LIKE @parmLicNbr + '%'
Men om jag hårdskiver in så får jag tre träffar.
SELECT * FROM bo_Licence WHERE LicNbr LIKE 'M180360GER%'--@parmLicNbr + '%'


Svara

Sv:MSSQL 2005 kasta om en sträng.

Postades av 2008-11-28 17:15:02 - Håkan Borneland

Deklarera @parmLicNbr char(12) som @parmLicNbr varchar(12)


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-12-01 10:45:25 - Gert Lindholm

Om man då får fram t.ex M180360GER03 från SUBSTRING(@parmMaxLicNbr,1,10) + SUBSTRING(@parmMaxLicNbr,11,2)
Så vill jag addera 03 till 04. Har provat med:
SET @parmMaxLicNbr = SUBSTRING(@parmMaxLicNbr , 1,10) + SUBSTRING(@parmMaxLicNbr,11,2) + 1

Men får då fel att det inte går att konvertera nvarchar och int


Svara

Sv:MSSQL 2005 kasta om en sträng.

Postades av 2008-12-01 14:09:12 - Håkan Borneland

Du måste göra en cast på det sista uttrycket, såhär:
<code>
SET @parmMaxLicNbr = SUBSTRING(@parmMaxLicNbr , 1, 11) + CAST(SUBSTRING(@parmMaxLicNbr, 11, 2) + 1 AS nvarchar(1))
</code>

Tänk då på att när du gör denna addition så "försvinner" nollan framför.
För att få med den i ditt fall så måste det första uttrycket läsa ett tecken till i SUBSTRING() (se ovan).
Om du sedan går vidare med högre siffror (>9) då måste du ta hänsyn till detta igen.
Lite tillkrånglat tycker jag.


Svara

Sv: MSSQL 2005 kasta om en sträng.

Postades av 2008-12-01 14:35:54 - Gert Lindholm

Kan hålla med där, men det är en konvertering fr ett gammalt system. Och dom har beslutat att ha det kvar.

Tack för hjälpen :)


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 615
27 953
271 709
5 642
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies