sql语句奥妙之一
例如问题:现在你面对一张表 table1 , table1中有个字段为sales_salary ,在数据库存放的字段为int 类型 。
要求,你统计的结果单位(万元),保留2位小数。并且会有这样的等式 (1行+2行=3行=7行+8行) 面对这样的问题,解决的方案有很多。比如,你可以通过视图的方案来解决,或控制输入域 ...
但有一种等效控制输入域的办法,那就是写sql语句。
这需要对 sql 语句很精通,懂的其中的内涵。
ex1:
select sales_date ,sum(round(sales_salary/10000,2))
from table1
group by sales_date ;
ex2:
select t.sales_date,sum(t.sales_salary) from (
select sales_date,round(sales_salary/10000,2) as sales_salary from table1
) t
group by t.sales_date;
ex1与ex2是殊途同归的一种效果,但是效率是不一样的。
所以sql语句的基本关键句型很简单 select ... from ... where .....group by ...having .....order by ....,但简单的东西很难掌握。
希望能对学习sql语言的朋友有所帮助。
相关文档:
在SQL Server中使用NewID()方法产生随机集
例如考试系统中的随机出题
刚开始想到的是Random类
但是Random效率有点低
后来想到了在数据库里的newid()
于是采用了下边方法:
select top 5 * from tablename order by newid()
在此标记一下 ......
使用子查询的原则
1.一个子查询必须放在圆括号中。
2.将子查询放在比较条件的右边以增加可读性。
子查询不包含 ORDER BY 子句。对一个 SELECT 语句只能用一个 ORDER BY 子句,
&nb ......
一般用BCP在处理这个事情,但有时也需要一些特殊的处理,以下是生成表中的一些数据,带有where条件的选择生成数据,是我一个同事修改的,直接拿过来用了:
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
Create Proc proc_insert_where (@tablename varchar(256),@where varchar(256 ......
...
)
用到的功能有:
1.如果我更改了学生的学号,我希望他的借书记录仍然与这个学生相关(也就是同时更改借书记录表的学号);
2.如果该学生已经 ......
一、 简单查询
简单的Transact-SQL查询只包括选择列表、from子句和WHERE子句。它们分别说明所查询列、查询的
表或视图、以及搜索条件等。
例如,下面的语句查询testtable表中姓名为“张三”的nickname字段和email字段。
SELECT nickname,email
from testtable
WHERE name='张三'
(一) 选择 ......