Vad är skillnaden på att skriva foo = bar och bar AS foo?
Är något av dem standard och något inte?
AS vs. =
8 svar · 258 visningar · startad av Erik Juhlin
SELECT foo = bar FROM tabellen bör returnera ett booleskt värde som visar huruvida fältet foo innehåller samma sak som fältet bar. Det är alltså inte jämförbart med att använda AS, som du gör vid aliastilldelning.
red: en test visar att det inte riktigt är så det fungerar. Vid =-användning får faktiskt fältet bar alias foo, men foo och bar måste vara fält som finns i tabellen.
Jag har använt SQL Server i min test.
Mvh
Det är väl samma sak åt andra hållet. Skriver man bar AS foo så måste ju bar finnas i tabellen även där..?
Notera min redigering. ;)
När du använder AS kan du ge vilket alias du vill. Med = stjäl du kolumnnamn ifrån tabellen, och dessutom är "aliastilldelningen" i motsatt riktning.
Min uppfattning är i alla fall att de två olika inte går att jämföra.
Mvh
Jag kan skriva whatever = foo. foo måste finnas idatabasen, men inte whatever.
Varför går de inte att jämföra? Som jag ser det gör de precis samma sak...
Okej, det kanske är jag som missuppfattade.
Då är det nog så att det funkar likadant fast baklänges?
Då går de att jämföra. Om de gör samma sak.
Jag röstar på att AS är det man bör använda, men det betyder ju ingenting. Jag lämnar över till någon som vet hur standarderna ser ut. ;)
Tack, det är bättre att någon som kan det svarar istället för att man får en massa gissningar till svar.
SQL server gör fel som tolkar
exression = expression
som en tilldelning/namngivning. Enligt standard är det som @nders säger, ovanstående skall betraktas som ett booleskt uttryck som kan returnera true/false/unknown.
Om man vill namnge ett uttryck så skall man använda
expression AS name
om man vill tilldela en variabel så skall man använda
set @v = expression
Tack för svaret LarsG! :)
Och ta inte illa upp @nders. Du är helt enkelt bara kass på SQL. Missa FROM... :OO