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


Konvertera decimal till number SQL

Postades av 2007-10-30 09:26:26 - David Svensson, i forum sql-server/msde, Tråden har 10 Kommentarer och lästs av 3484 personer

Hej,

Jag har i min tabell en kolumn som är av typen decimal.
Jag skulle i min sql-fråga vilja visa bara heltalsbiten av siffran, dvs innehåller kolumnen 1.23 ska 1 visas, 1.99 ska också 1 visas.

Finns det någon bra konverteringsfunktion i SQL för detta?

// David


Svara

Sv: Konvertera decimal till number SQL

Postades av 2007-10-30 11:20:36 - Tomas Granlund

SELECT CAST(kolumnen AS int) AS heltalsdelen FROM tabellen

borde funka


Svara

Sv:Konvertera decimal till number SQL

Postades av 2007-10-30 15:22:31 - Lars-Erik Eriksson

Nja, det där ger ju 2 från 1,99. Trådskaparen vill ju s k trunkering.


Svara

Sv: Konvertera decimal till number SQL

Postades av 2007-10-30 16:09:48 - Niklas Jansson

Vanligaste är ju floor, round, fix, trunc och truncate.

En annan variant:
1. Skapa en tabell med alla heltal som finns. Kalla den Heltal, med en kolumn n.
2. Kör en SELECT n FROM Heltal, DinTabell WHERE DinTabell.Tal<n AND DinTabell.Tal>(n-1)

;)


Svara

Sv:Konvertera decimal till number SQL

Postades av 2007-10-30 16:14:38 - Lars-Erik Eriksson

Round som Niklas föreslår är nog enklast:

SELECT ROUND(fältnamn, 0, 1) FROM MyTable

Kolla på Round i books online om du vill förstå vad du gör.


Svara

Sv: Konvertera decimal till number SQL

Postades av 2007-10-30 16:34:37 - Håkan Borneland

SELECT ROUND(fältnamn, 0, 1) FROM MyTable ger 1.00
SELECT CONVERT(int, fätnamn) ger 1 (om fältnamn innehåller 1.99)

/Håkan


Svara

Sv:Konvertera decimal till number SQL

Postades av 2007-10-31 08:42:14 - Tomas Granlund

Finns en fin tabell ganska långt ner på

http://msdn2.microsoft.com/en-us/library/ms187928.aspx

som visar vilka konverteringar som ger avrundning respektive trunkering. T.ex. ger en cast från Numeric eller float -> int trunkering och inget annat.

"For example, the result of the following conversion is 10:
SELECT CAST(10.6496 AS int) "

Så nej, den metod jag skrev bör inte konvertera 1.99 till 2.


Svara

Sv: Konvertera decimal till number SQL

Postades av 2007-10-31 09:50:35 - Håkan Borneland

Mmmmmmm
Mer spinoff i ämnet...
Om man kör Som Tomas Skrev: SELECT CAST(10.6496 AS int) eller
SELECT CONVERT(int, 10.6496) så blir det mycket riktigt 10.
Gör man så här: CREATE TABLE dbo.Test (val decimal NOT NULL) (man vet ju inte hur trådskaparen har deklarerat sitt decimal fält)
INSERT INTO dbo.Test VALUES (10.6496)
Då ger SELECT CAST(val AS int) FROM Test 11.
Om du i DDLen skriver t.ex decimal(6,0), så får du också 11.
Men, om du anger en skala större än 0, t.ex. decimal(6,1) så får du 10.

/Håkan


Svara

Sv:Konvertera decimal till number SQL

Postades av 2007-10-31 12:41:32 - Tomas Granlund

Scale (skala) anger hur många siffror till höger om decimalkommat som ska lagras i databasen. Om du som i Håkans exempel sätter scale = 0 och försöker inserta 10.8 kommer databasen att lagra värde 11, och inga typkonverteringar/trunkeringar i världen kommer ge dig 10.8 åter.

Vi vet ju förvisso inte hur trådskaparen deklarerat sin kolumntyp, men den torde ju rimligen ha scale > 0 (annars bör ju han ha märkt att nåt är galet :P).


Svara

Sv: Konvertera decimal till number SQL

Postades av 2007-10-31 15:13:20 - Håkan Borneland

Mmmm... självklart.
Bra med förtydliganden.
Jag ville visa vad olika "användarfall" får för "utfall"... :-)

/Håkan


Svara

Sv:Konvertera decimal till number SQL

Postades av 2007-11-01 15:29:28 - David Svensson

Hej och tack för alla svar.

Mitt fält är definierat som decimal(5,2)

och om jag kör följande fråga får jag rätt resultat

SELECT CAST(kolumn AS int) AS heltalsdelen, kolumn FROM tabell

1 | 1,92
2 | 2.08
osv.


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 616
27 953
271 709
5 723
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