需要这个查询的逻辑?

bho*_*hoo 4 sql sql-server

我是Sql的初学者请指导我.我有两个表1)tblEmploee&2)tblAgeGroup

在此输入图像描述

在此输入图像描述

将AgeGroupName实现到tblEmploee表的最佳方法是什么.

Dev*_*art 6

解决方案#1 -

SELECT e.*, a.AgeGroupName 
FROM dbo.tblEmploee e
JOIN dbo.tblAgeGroup a ON e.EmpAge BETWEEN a.AgeGroupMinAge AND a.AgeGroupMaxAge
Run Code Online (Sandbox Code Playgroud)

解决方案#2 -

SELECT *
FROM dbo.tblEmploee e
OUTER APPLY (
     SELECT TOP 1 a.AgeGroupName 
     FROM dbo.tblAgeGroup a
     WHERE e.EmpAge BETWEEN a.AgeGroupMinAge AND a.AgeGroupMaxAge 
) a
Run Code Online (Sandbox Code Playgroud)

解决方案#3 -

SELECT e.*, AgeGroupName = (
     SELECT a.AgeGroupName 
     FROM dbo.tblAgeGroup a
     WHERE e.EmpAge BETWEEN a.AgeGroupMinAge AND a.AgeGroupMaxAge
) 
FROM dbo.tblEmploee e
Run Code Online (Sandbox Code Playgroud)

  • **[SQL Fiddle](http://sqlfiddle.com/#!3/ae0df/5)**我尝试的是与解决方案#1相同的逻辑.但你更快. (2认同)