读书人

看到的两道面试题解决方案

发布时间: 2013-09-11 16:59:35 作者: rapoo

看到的两道面试题
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.myexception.cn/other/1391128.html

读书人网 >C#

热点推荐