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


Create view med data manipulering vid insert

Postades av 2009-01-23 18:25:59 - Linus Johansson, i forum sql-server/msde, Tråden har 5 Kommentarer och lästs av 1501 personer

Hallå,

Sitter på ett litet angenämt problem. Jag skulle vilja skapa en vy och samtidigt manipulera datat som kommer in. Jag vill alltså inte skapa en vy för att sedan manipular datat där utan göra det direkt i vyn.

Alltså ungefär så här

CREATE VIEW AS
SELECT col1
,('0' + col2) AS col2
,col3
,col4
FROM table

Bakgrunden till det hela är att jag läser från xls via OPENDATASOURCE och 0'or trimmas bort om de är i början av ett numeriskt fält. Så för en person som är född "010101" ser det ut så är i vyn "10101".
Allt görs i SQL 2005 i 2000 mode.

Alla tips och tricks är välkomna


Svara

Sv: Create view med data manipulering vid insert

Postades av 2009-01-23 19:16:13 - Håkan Borneland

Är inte helt säker att jag förstått hela din problemställning.

Ditt förslag fungerar om col2 är en sträng kolumn.
Fast då får du en nolla varje gång.
Det här kan vara en lösning på ditt problem:
<code>
CREATE VIEW MyView AS
SELECT col1
,RIGHT('000000' + col2, 6) AS col2
,col3
,col4
FROM table;
</code>
Sexan byter man ut till den längd man vill ha på strängen.


Svara

Sv:Create view med data manipulering vid insert

Postades av 2009-01-25 14:30:41 - Linus Johansson

Min lösning var bara för att visa ungefär vad jag ville.
Det borde funka. Problemet är att jag inte vet hur många siffror/tecken som kommer in men jag vill att den ska fylla på till höger med 0'or upp till 10 siffror/tecken. Alltså det kan komma in 10, 9, 8 eller 7 siffror. i de olika fallen ska man alltså fylla på 0, 1, 2, och 3 0'or. Jag har testat med REPLICATE men det funkar inte.

Kan det ha att göra med att jag läser från ett excel ark?


Svara

Sv: Create view med data manipulering vid insert

Postades av 2009-01-26 21:03:20 - Håkan Borneland

Linus, kan vi reda ut en sak.
I mitt exempel ovan med funktionen RIGHT() så får man den paddingeffekt av nollor som du efterfrågar.
(om jag inte missförstått dig helt).

Ex.
Vill man att det ska vara 10 tecken (siffror) så anger man bara 10 nollor och 10 som antal tecken.
Har man då:
DECLARE @temp varchar (10);

SET @temp = '224';
SELECT RIGHT('0000000000' + @temp, 10); ---> 0000000224

SET @temp = '101224';
SELECT RIGHT('0000000000' + @temp, 10); ---> 0000101224

SET @temp = '8101224';
SELECT RIGHT('0000000000' + @temp, 10); ---> 0008101224

SET @temp = '98101224';
SELECT RIGHT('0000000000' + @temp, 10); ---> 0098101224

osv, osv....

Vill man padda åt andra hållet använder man LEFT().

Var det inte detta du efterfrågade?
Att alltid få dynamiskt utfyll med nollor till 10 tecken.


Svara

Sv:Create view med data manipulering vid insert

Postades av 2009-02-03 14:24:32 - Linus Johansson

Japp, Det var precis det jag ville. Missuppfattade bara hur koden skulle funka. Det blev en något omständigare lösning. Jag blev nämligen tvingad att spara datat i db trots allt. Så jag löste det med en


   CREATE VIEW MyView_VW AS 
        SELECT 
               Col1    
              ,CAST(Col2 AS bigint) AS Col2
              ,Col3
         FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source=e:\MyXls.xls;Extended Properties=Excel 8.0')...Sheet1$


för att sedan trycka in det i en tabell med

INSERT INTO MyTable_TB(
 Col1
,Col2
,Col3)
SELECT 
 Col1
, REPLICATE('0', 10-LEN(CAST(Col2 AS varchar(10)))+CAST(Col2 AS varchar(10)))AS Col2
,Col3
FROM MyView_VW




Det som händer när man importerar från xls är att alla numersika fält kommer in som FLOAT vilket inte riktigt är vad jag vill ha så därför blir jag tvingad att i första läget casta om till en bigint.

Tack för hjälpen i alla fall.

/Linus


Svara

Sv: Create view med data manipulering vid insert

Postades av 2009-02-04 13:53:15 - Håkan Borneland

Bra att det löste sig.


Svara

Nyligen

  • 18:37 Remove the bumper in AUDI
  • 15:35 Chicken road crash game
  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов

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 570 889
27 965
271 778
503
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