日期:2014-05-18  浏览次数:20855 次

看到的两道面试题
2 SQLServer:  
有1张表,  

Wages 表  
-------------------------------------------  
Emp_id | 基本工资| 工龄工资 |  
-------------------------------------------  
1 | 1.00 | 1.00 |  
-------------------------------------------  
2 | 1.00 | 2.00 |  
-------------------------------------------  
3 | 1.00 | 3.00 |  
-------------------------------------------  
4 | 1.00 | 4.00 |  
-------------------------------------------  
.........  

请从上表用 “一句组合查询” 查询出工资统计表,要求检索出的内容格式如下:  


   
-----------------------------  
Emp_id | 基本工资| 工龄工资 | 合计 | 名次  
------------------------------  
1 | 1.00 | 1.00 |2.00 | x  
------------------------------  
2 | 1.00 | 2.00 |3.00 | y  
------------------------------  
3 | 1.00 | 3.00 |4.00 | ..  
------------------------------  
4 | 1.00 | 4.00 |5.00 | ..  
------------------------------  
.........  

(请调试通过并结果正确后再回复答案,请注意语句的性能)  

3 算法题: 一个任意的三位数(个十百位均不相同),求将个十百重新按不同的顺序组合共有多少个不同的三位数?分别是什么?(C#)  

示例:  
123:  
123,132,213,231,312,321。

------解决方案--------------------
第一题:
select *,基本工资+工龄工资 as 合计,(SELECT COUNT(DISTINCT 基本工资+工龄工资) FROM wages WHERE 基本工资+工龄工资 >= a.基本工资+a.工龄工资) from wages a

第二题还是没做出来
------解决方案--------------------
"2 SQLServer: "
select emp_id,基本工资,工龄工资,基本工资+工龄工资 as 合计,
(select count(distinct 基本工资+工龄工资) from emps where 基本工资+工龄工资 >=a.基本工资+a.工龄工资) as 排名 from emps a 
order by 基本工资+工龄工资 desc


"3 算法题: 一个任意的三位数(个十百位均不相同),求将个十百重新按不同的顺序组合共有多少个不同的三位数?分别是什么?(C#) "
int _num = 123;
string _numStr = _num.ToString();
string _ge=String.Empty;
string _shi=String.Empty;
string _bai=String.Empty;
foreach(char _c1 in _numStr)
{
_ge = _c1.ToString();
foreach(char _c2 in _numStr)
{
if(_c2.ToString() != _ge)
{
_shi = _c2.ToString();
}
else
{
continue;
}
foreach(char _c3 in _numStr)
{
if(_c3.ToString()!=_ge && _c3.ToString() !=_shi)
{
_bai =_c3.ToString();
Console.WriteLine(_bai + _shi + _ge);
}
}
}
}
Console.ReadLine(); 

我的异常网推荐解决方案:软件开发者薪资,http://www.aiyiweb.com/other/1391128.html