随笔分类 -  T-SQL

查询表里某个字段10-30之间的数据且ID不是连续的
摘要:例如有一张Student表ID、Name字段查询ID 10到30之间的Name 且ID不是连续的如下代码SELECTDistinctNameFROMStudentWHERE[ID]NOTIN(SELECTTop10[ID]FROMStudnet)AND[ID]in(SELECTTop30[ID]Student) 阅读全文

posted @ 2012-05-08 23:51 空白画映 阅读(696) 评论(0) 推荐(1)

SQL 合并查询 把列数据转为行
摘要:表:姓名 语文 数学 英语张三 75 90 85李四 80 85 85查询结果姓名 成绩 科目张三 90 数学李四 85 数学,英语 select*intoCJfrom(select'张三'as姓名,75as语文,90as数学,85as英语unionselect'李四'as姓名,80as语文,85as数学,85as英语)a----------------select姓名,max(成绩)as成绩,(selectcasewhen语文=MAX(成绩)then'语文,'else''end+casewhen数学=MAX(成绩)then 阅读全文

posted @ 2012-03-27 10:35 空白画映 阅读(390) 评论(0) 推荐(0)

Access 数据库日期类型字段的查询
摘要:最近用ACCESS数据做一个小软件,因为日期用的是日期类型的字段。当查询的是发现和SQL不一样。对于日期的查询 要么用Between AND 要么用 > <还有一个问题比较郁闷我在ACCESS日期字段里面已经设置“短日期”格式但查出来的数据依然是“长日期”时分秒都会显示无奈Access里面又没有Convert函数也无法格式。最让我纠结的是在Access里面用T-SQL 日期似乎要用 ## 给包起来。例如下面语句查询大于某天的日期SELECT StrDate FROM 表名WHERE StrDate > #2011-8-19#如果不加#就查不出来数据。 阅读全文

posted @ 2011-08-19 15:17 空白画映 阅读(5605) 评论(0) 推荐(0)

T-SQL之插入的内容是查询出的值
摘要:新手菜鸟对SQL不是很了解,以前遇到需要把某张表的相关字段的值查询出来的同时在插入到另一张表里面,的问题时候我都是先查询出数据在把数据插入 用了两句SQL。今天发现可以一句SQL搞定INSERT INTO 要插入的表名(字段1,字段2,......)SELECT 字段1,字段2,......FROM 要查询的表名 阅读全文

posted @ 2011-08-10 19:24 空白画映 阅读(682) 评论(0) 推荐(0)

T-SQL的left join、right join、inner join区别!
摘要:我以前一直搞不清楚left join、right join、inner join 不会用,今天特意从别处参考一些资料记录下来以后可以参考学习用!left join(左联接) 返回包括左表中的所有记录和右表中联结字段相等的记录 right join(右联接) 返回包括右表中的所有记录和左表中联结字段相等的记录inner join(等值连接) 只返回两个表中联结字段相等的行举例如下: --------------------------------------------表A记录如下: 表B记录如下:aID aNum bID bName1 a20050111 1 2006032401 2 a200 阅读全文

posted @ 2011-07-21 16:14 空白画映 阅读(1514) 评论(0) 推荐(0)

SQL聚合使用GROUP BY
摘要:今天执行一SQL语句SELECT Max(JSKSSJ) AS 结算开始时间, Max(JSJZSJ) AS 结算截止时间,JSLBBZ FROM ZY_JieSuan WHERE ZYLSH='110530130001' 提示错误服务器: 消息 8118,级别 16,状态 1,行 1列 'ZY_JieSuan.JSLBBZ' 在选择列表中无效,因为该列未包含在聚合函数中,并且没有 GROUP BY 子句。原因是因为 JSLBBZ字段没有聚合所以要放在GROUP BY里面。改正后代码SELECT Max(JSKSSJ) AS 结算开始时间, Max(JSJZSJ 阅读全文

posted @ 2011-07-01 09:29 空白画映 阅读(465) 评论(0) 推荐(0)

SQL统计查询一个表中的记录,然后减法运算
摘要:表的数据如下 :类型里1代表支出,2代表收入ID 支出/收入 金额 类型 时间1 支出1 100 1 2009年01月01日2 收入1 500 2 2009年5月12日3 支出3 200 1 2009年6月05日4 支出4 600 1 2009年7月06日5 收入2 1000 2 2009年10月21日1 --类型与金额都为 数字2 3 access:4 select sum(金额) -(select sum(金额) from 表 where 类型=1) from 表 where 类型=25 6 7 sql2000:8 select (sum(case 类型 when 2 then 金额 el 阅读全文

posted @ 2011-06-27 16:23 空白画映 阅读(11742) 评论(0) 推荐(1)

导航