Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
A little SQL brain teaser
Message
 
 
General information
Forum:
Microsoft SQL Server
Category:
SQL syntax
Environment versions
SQL Server:
SQL Server 2005
Application:
Web
Miscellaneous
Thread ID:
01622621
Message ID:
01622631
Views:
70
My guess, you'll get error on the first query because it returns 2 rows.
The result of the second query is not deterministic. It depends on the order in which rows are returned. The value is assigned from the last row so you can get either value.

>I'm actually writing some questions for a T-SQL test, and I dusted off this example from the vault.
>
>This query and example (by itself) doesn't make much sense, but it does illustrate a subtle difference between 2 queries.
>
>If anyone wants to answer this, I ask one thing - don't paste the code and run it...see if you can figure out the results just by reading.
>
>Suppose I have this table...
>
>
>
>CREATE TABLE dbo.MaxTest  (Name varchar(50), PayRate decimal(14,4))
>
>insert into dbo.MaxTest values ('Kevin', 50),  
>                                ('Katy', 60) 
>
>
>
>Here are 2 code samples. What will happen in each of the two examples? (will I get an error, will I get a result, etc.)
>
>sample 1:
>
>
>DECLARE @MaxRate decimal(14,4)
>SET @MaxRate = (SELECT MAX(PayRate) from dbo.MaxTest GROUP BY Name)
>SELECT @MaxRate
>
>
>sample 2:
>
>
>DECLARE @MaxRate decimal(14,4)
>SELECT @MaxRate = MAX(PayRate) FROM dbo.MaxTest GROUP BY Name
>SELECT @MaxRate
>
--sb--
Previous
Reply
Map
View

Click here to load this message in the networking platform