Just nu i M3-nätverket
Gå till innehåll

Tom fält


Admini

Rekommendera Poster

Hej

Hur skriver jag om ett fält ska vara tomt i SQL?

Jag vill hitta alla de värden i fält "postadress" där "gatuadress" är tom.

Kan jag skriva så här?

SELECT Postadress FROM tabell_1 Where Gatuadress = ''

Det går inte just nu...

Tack för snabb hjälp:)

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Vill du veta vilka som är tomma eller vilka som inte innehåller något? (nej, det är inte samma sak...)

 

Hämta tomma fält:

SELECT Postadress FROM tabell_1 Where Gatuadress = ''

 

Hämta fält som inte innehåller något:

SELECT Postadress FROM tabell_1 Where Gatuadress = null

 

 

 

Länk till kommentar
Dela på andra webbplatser

Jag vill egentligen flytta värdet i "postadress" till "gatuadress" där gatuadress är tom.

I vissa poster är de(gatuadress) tomma o i andra inte

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

update tabellen set gatuadress = postadress where (gatuadress = '') or (gatuadress = null)

 

Länk till kommentar
Dela på andra webbplatser

update tabellen set gatuadress = postadress where (gatuadress = '') or (gatuadress = null)

Det händer ingenting faktiskt, men när jag tar bort villkoret då händer det:

update tabellen set gatuadress = postadress

Fast det är inte vad vill utföra!

 

[inlägget ändrat 2003-05-20 12:05:30 av Admini]

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Tar du bort villkoret så köra update på ALLA posterna. Testa att ta bort (gatuadress = null)

 

 

 

Länk till kommentar
Dela på andra webbplatser

Magnus Gladh

Är du säker på att kolumnenn är tom då?

Den kan ju innehålla en del mellanslag. Testa att ta TRIM(KOLUMNNAMNET) = '' och se om det fungerar bättre.

 

- Magnus

-----------------------------------------------------

Ropen skall, BBB åt alla!!!

 

Länk till kommentar
Dela på andra webbplatser

Ja, det är tom och jag provade din lösning också, men ingen skillnad.

Här är hela koden:

set Conn=Server.CreateObject("ADODB.Connection")
Conn.open "PROVIDER=Microsoft.Jet.OLEDB.4.0; Data Source=f:\databas\db2.mdb"
SQL="update tabell_1 set postadress=gatuadress  where Trim(postadress = '')"
conn.execute SQL

 

[inlägget ändrat 2003-05-20 13:00:07 av Admini]

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Då är jag nästan tvärsäker på att fälten inte är tomma.

 

Kör:

 

select * from tabellen where gatuadress = ''

 

 

 

Länk till kommentar
Dela på andra webbplatser

DÅ får jag helt tom tabell!

Men vad är det i dem om de inte tomma?

 

Kan jag skriva WHERE postadress.len > 0

[inlägget ändrat 2003-05-20 13:04:47 av Admini]

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Fel av mig, det heter len i det språket... inte lätt när man sitter med annat här... ;)

 

 

Länk till kommentar
Dela på andra webbplatser

OK nu får jag lite olika längder angivna för de fält där det finns adresser!

Vad nu då?

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Det intressant är nu vilka längder du har för de poster som har "tom" gatuadress...

 

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

ok.

 

Då ska detta fungera:

 

update tabell set gatuadress = postadress where isnull(gatuadress,'') = ''

 

Länk till kommentar
Dela på andra webbplatser

Då får jag fel:

SQL="update tabell_1 set gatuadress = postadress where isnull(gatuadress,'') = '' "

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Vilket fel får du?

Vad använder du för databas??

Det beter sig inte som det ska, tycker jag....

 

Länk till kommentar
Dela på andra webbplatser

Oj jag glömde själva felmedd:

Fel antal argument i funktionsanrop i frågeuttrycket 'isnull(gatuadress,'') = '''.

 

Använder Accessdatabas

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson
Använder Accessdatabas

 

Jaha. Den vet jag för lite om för att ge dig bra svar.

 

Länk till kommentar
Dela på andra webbplatser

Ajdå, vad använder du för databas då?

VAd vill du att IsNull ska göra här exakt?

 

Länk till kommentar
Dela på andra webbplatser

För mig låter det som att dina fält är null precis som Mr Andresson har sagt. Grejen är den att det går inte att jämföra något med null direkt. Man kan tänka på null som något okänt. Då blir det lättare att se att en jämförelse som är gatuaddressen lika med någonting okänt? Det går inte att svara på den frågan.

 

Därför ska du göra så här:

update tabell_1 set gatuadress=postadress where ISNULL(gatuadress)

 

_________

-- ante --

 

 

Länk till kommentar
Dela på andra webbplatser

Mr Andersson

Jag kör bara MS-SQL.

 

ISNULL(column,string) returnerar 'string' om 'column' är null.

 

Men i ditt fall SKA det fungera med:

 

UPDATE tabellen SET gatuadress = postadress WHERE gatuadress = null

 

Förursatt att postadress inte också är tomt...

 

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...