??xml version="1.0" encoding="utf-8" standalone="yes"?>国产99在线观看,日本一卡二卡四卡精品
,国产精品人成在线观看免费 http://www.aygfsteel.com/kiant/category/39360.html有才而性缓定属大才Q有气和斯为大智。h偏狭我受之以宽容Qh险仄我持之以坦荡。缓事宜急干Q敏则有功;急事宜缓办,忙则多措?
--李叔?/description>zh-cn Sat, 10 Apr 2010 19:37:28 GMT Sat, 10 Apr 2010 19:37:28 GMT 60 SQL Server、MySQL?Oracle的行合ƈ http://www.aygfsteel.com/kiant/articles/317866.html黄小?/dc:creator>黄小?/author>Fri, 09 Apr 2010 08:24:00 GMT http://www.aygfsteel.com/kiant/articles/317866.html http://www.aygfsteel.com/kiant/comments/317866.html http://www.aygfsteel.com/kiant/articles/317866.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/317866.html http://www.aygfsteel.com/kiant/services/trackbacks/317866.html
内容引自Q?br />
多行一列数据合q成一行一列数?br />
http://topic.csdn.net/u/20090714/17/5FE6A0F7-CE78-4936-BE31-21D462236059.html
在MySQL和Oracle中实现行合ƈ
http://www.aygfsteel.com/rain1102/archive/2009/06/24/283867.html
SQL Server
-- SQL2005中的Ҏ2
create table tb(id int , value varchar ( 10 ))
insert into tb values ( 1 , ' aa ' )
insert into tb values ( 1 , ' bb ' )
insert into tb values ( 2 , ' aaa ' )
insert into tb values ( 2 , ' bbb ' )
insert into tb values ( 2 , ' ccc ' )
go
select id, [ values ] = stuff (( select ' , ' + [ value ] from tb t where id = tb.id
for xml path( '' )), 1 , 1 , '' )
from tb
group by id
/*
id values
----------- --------------------
1 aa,bb
2 aaa,bbb,ccc
(2 row(s) affected)
*/
drop table tb
MySQL
select name , group_concat(email order by email separator ", ") as email from student group by name
Oracle
如果以上效果惛_Oracle中显C? 则比较复杂点? 因ؓOracle中没有行合ƈ函数, 则需要用sys_connect_by_path()来实? 代码如下:
select name, ltrim (sys_connect_by_path(email, ' , ' ), ' , ' ) email from (
select name,email,
row_number() over (partition by name order by email) rn,
count ( * ) over (partition by name) cnt
from student
) where level = cnt
start with rn = 1
connect by prior name = name and prior rn + 1 = rn
]]> 标量子查?/title> http://www.aygfsteel.com/kiant/articles/286847.html黄小?/dc:creator>黄小?/author>Wed, 15 Jul 2009 04:47:00 GMT http://www.aygfsteel.com/kiant/articles/286847.html http://www.aygfsteel.com/kiant/comments/286847.html http://www.aygfsteel.com/kiant/articles/286847.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/286847.html http://www.aygfsteel.com/kiant/services/trackbacks/286847.html
引用: 标量子查?/legend>
一个标量子查询是一个放在圆括弧里的普?SELECT查询Q?它只q回只有一个字D늚一行.Q参?Chapter 4 获取有关写查询的信息。) ?SELECT 被执行Q?而其单个q回值将在周围的D辑ּ中用. 把一个返回超q一行或者超q一列的查询用做标量查询是错误的Q?(不过Q在特定的执行中Q子查询不返回行则不错误;标量l果认ؓ?NULLQ?该子查询可以引用周围查询的变量, 那些变量也是在计Q意子查询的时候当做常量用的Q?又见 Section 6.15Q?
比如Q下面的查询扑և每个州中的最大h口数量的城市?
SELECT name, (SELECT max(pop) FROM cities WHERE cities.state = states.name)
FROM states;
子查询作为标量操作数--MySql数据?/a>
ps: q种Ҏ的只能查询单一?br />
《Oracle 高效设计?M思?-标量子查询查询性能讨论
能提供不思\
select n.ex_name, c.customer_name, n.remark, e.employee_name as create_name, n.create_user, n.project_id, n.id as node_id, n.model_id, n. file_id , g.grade_name as level_name, t.type as type_name,
exe.exe_ids, exe.exe_names, dept.dept_ids, dept.dept_names,
Convert (DATE_FORMAT(pn.node_end_time, ' %Yq?c?e?/span>' ) USING utf8) as end_time
from hrp_project_execution n
left join hrp_cycle_grade g on g.id = n.worklevel
left join hrp_work_type t on t.id = n.worktype
left join hrp_customer c on c.id = n.customer_id
left join hrp_company_employee_info e on e.id = n.create_user
left join hrp_project_node pn on pn.id = n.node_id
left join ( select ne.execution_id, Convert (GROUP_CONCAT(ne.executor_id) USING utf8) as exe_ids, GROUP_CONCAT(e.employee_name) as exe_names
from hrp_project_execution_executor ne
inner join hrp_company_employee_info e on e.id = ne.executor_id
where ne.delete_flag = 0 and ne.execution_id = 46 group by ne.execution_id
) exe on exe.execution_id = n.id
left join ( select de.exectuion_id, Convert (GROUP_CONCAT(de.deptor_id) USING utf8) as dept_ids, GROUP_CONCAT(e.employee_name) as dept_names
from hrp_project_execution_deptor de
inner join hrp_company_employee_info e on e.id = de.deptor_id
where de.delete_flag = 0 and de.exectuion_id = 46 group by de.exectuion_id
) dept on dept.exectuion_id = n.id
where n.id = 46
ps. 自己写的部分, 东西镶嵌?left join 部分
]]> mysql旉字段的格式与~码转换, C#?xml 存储旉数据的时解x?/title> http://www.aygfsteel.com/kiant/articles/286217.html黄小?/dc:creator>黄小?/author>Fri, 10 Jul 2009 04:08:00 GMT http://www.aygfsteel.com/kiant/articles/286217.html http://www.aygfsteel.com/kiant/comments/286217.html http://www.aygfsteel.com/kiant/articles/286217.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/286217.html http://www.aygfsteel.com/kiant/services/trackbacks/286217.html 因ؓ C#里调?Dataset内置Ҏ GetXml()生成?xml字符串是?XMLSchema架构?br />
其生成的 xml字符串里旉格式是以 "2009-07-07T14:58:27+08:00" 存放?br />
在接收端解析的时?如果没有 XMLSchema架构的注?nbsp;
< xs:element name =" dept_createtime " type =" xs:dateTime " minOccurs =" 0 " />
xml 数据 "2009-07-07T14:58:27+08:00" 会以默认的字W方式进行解?br />
所以在目里我的解x法是在利?sql语句查询时就生成特定的字W串格式
Convert( DATE_FORMAT(n.node_begin_time, '%Y.%c.%e') using utf8) as begin_time
//先利?DATE_FORMAT()函数q行样式格式?br />
//在利?Convert() 函数q行~码转换, 以生?C#字符串编码方? 否则会出现在数据库能正常昄, ?C#查询出来却成?System.Byte[]
参考文?
MySQL利用DATE_FORMAT()函数完成字符串到旉cd的{换,旉的格式化 ]]>一个关?联合查询union 和排序order by 的例?/title> http://www.aygfsteel.com/kiant/articles/284131.html黄小?/dc:creator>黄小?/author>Thu, 25 Jun 2009 08:27:00 GMT http://www.aygfsteel.com/kiant/articles/284131.html http://www.aygfsteel.com/kiant/comments/284131.html http://www.aygfsteel.com/kiant/articles/284131.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/284131.html http://www.aygfsteel.com/kiant/services/trackbacks/284131.html Title
q可以把个别的select命o用圆括号Q这P可以Ҏơ查询以及最l结果做出limit和order by 讄?/p>
(select * from tbl1 order by colA limit 10) union (select * from tbl2 order by colA limit 10) order by
coltimestamp limit 5
// 查询有效期内的计划Q务节?br />
string sql = " select g.grade_name, "
+ " '' as degree_name,"
+ " '' as reason, "
+ " ' project_node ' as node_type, "
+ " '' as fact_node_name, "
+ " p.create_time, "
+ " p.id, p.project_id, p.node_name, p.deptids,"
+ " p.node_begin_time, p.node_end_time, p.worklevel"
+ " from hrp_project_node p "
+ " left join hrp_cycle_grade g on g.id = p.worklevel "
+ " where p.state = 0 and p.node_state <> 3 "
+ " and UNIX_TIMESTAMP(p.node_begin_time) < UNIX_TIMESTAMP( ' " + DateTime.Now.ToString() + " ' ) "
// 优先查出所?br />
//+ " and UNIX_TIMESTAMP(p.node_end_time) > UNIX_TIMESTAMP( ' " + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + " ' ) "
+ " and (p.exeids like ' " + userId + "% ' or p.exeids like ' %," + userId + "% ' ) ";
// 合ƈq未执行的Q务节?br />
sql += " union all "
+ " select g.grade_name, "
+ " '' as degree_name,"
+ " '' as reason, "
+ " ' fact_node ' as node_type, "
+ " '' as fact_node_name, "
+ " f.create_time, "
+ " f.id, f.project_id, f.node_name, f.deptids,"
+ " f.fact_begin_time, f.fact_end_time, f.worklevel"
+ " from hrp_fact_node_execute f "
+ " left join hrp_cycle_grade g on g.id = f.worklevel "
+ " where f.state = 0 and f.fact_state_id = 0 "
+ " and (f.exeids like ' " + userId + "% ' or f.exeids like ' %," + userId + "% ' ) ";
sql = string.Format(" select * from ({ 0 }) as t1 order by create_time desc ", sql);
ps: 我记得这L一帖子好像发表过, 奇怪ؓ什么不找不C??
当时q参考了别h的博?
qLing.... ? ?google.com搞得心神不宁啊~~~~
]]> Connector/Net q接 MySQLq程服务器出?"Unable to connect to any of the specified MySQL hosts" 解决Ҏ http://www.aygfsteel.com/kiant/articles/270714.html黄小?/dc:creator>黄小?/author>Thu, 14 May 2009 13:32:00 GMT http://www.aygfsteel.com/kiant/articles/270714.html http://www.aygfsteel.com/kiant/comments/270714.html http://www.aygfsteel.com/kiant/articles/270714.html#Feedback 2 http://www.aygfsteel.com/kiant/comments/commentRss/270714.html http://www.aygfsteel.com/kiant/services/trackbacks/270714.html
今天做项目时候就遇到q问?br />
中文提示“找不到相应的L?#8221;
q时候请查数据库服务器上 MySql.Data.dll 文g版本和项?bin 目录下的版本是否一致?/p>
如果q程L版本?6.0.3
而项目引用的?5.0.3
则会出现以上的错误提C?/p>
但是如果本机L上版本是 6.0.3
即ə目引用的是 5.0.3
也能正常q接数据库,不清楚是什么原?/p>
]]> MySQL 中时间格式相?/title> http://www.aygfsteel.com/kiant/articles/268672.html黄小?/dc:creator>黄小?/author>Sun, 03 May 2009 02:30:00 GMT http://www.aygfsteel.com/kiant/articles/268672.html http://www.aygfsteel.com/kiant/comments/268672.html http://www.aygfsteel.com/kiant/articles/268672.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/268672.html http://www.aygfsteel.com/kiant/services/trackbacks/268672.html
MySQL数据库中的Date,DateTime和TimeStampcd
DATETIMEcd用在你需要同时包含日期和旉信息的值时。MySQL索ƈ且以'YYYY-MM-DD HH:MM:SS'格式昄DATETIME?
DATEcd用在你仅需要日期值时Q没有时间部分。MySQL索ƈ且以'YYYY-MM-DD'格式昄DATE?/p>
TIMESTAMP列类型提供一U类型,你可以用它自动地用当前的日期和旉标记INSERT或UPDATE的操作。如果你有多个TIMESTAMP列,只有W一个自动更新?
自动更新 W一个TIMESTAMP列在下列M条g下发生:
列没有明地在一个INSERT或LOAD DATA INFILE语句中指定?
列没有明地在一个UPDATE语句中指定且一些另外的列改变倹{(注意一个UPDATE讄一个列为它已经有的|q将不引起TIMESTAMP列被更新Q因为如果你讄一个列为它当前的|MySQLZ效率而忽略更攏V)
你明地讑֮TIMESTAMP列ؓNULL.
除第一个以外的TIMESTAMP列也可以讄到当前的日期和时?/strong>Q只要将列设为NULLQ或NOW()?
ps.该网站同时还收录了一些相x术应用的文章
[原创]MYSQL中TIMESTAMPcd的默认?/a>
MYSQL中TIMESTAMPcd可以讑֮默认|像其他cd一栗?
1、自动UPDATE 和INSERT 到当前的旉Q?br />
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
2、自动INSERT 到当前时_不过不自动UPDATE?br />
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP
3、一个表中不能有两个字段默认值是当前旉Q否则就会出错。不q其他的可以?br />
`p_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`p_timew2` timestamp NOT NULL DEFAULT '0000-00-00 00:00:00'
mysql插入当前旉
now()函数以`yyyy-mm-dd hh:mm:ssq回当前的日期时_可以直接存到datetime字段中?
curdate()?#8217;yyyy-mm-dd’的格式返回今天的日期Q可以直接存到date字段中?
curtime()?#8217;hh:mm:ss’的格式返回当前的旉Q可以直接存到time字段中?
]]> MySQL 5.0存储q程 http://www.aygfsteel.com/kiant/articles/266248.html黄小?/dc:creator>黄小?/author>Fri, 17 Apr 2009 16:42:00 GMT http://www.aygfsteel.com/kiant/articles/266248.html http://www.aygfsteel.com/kiant/comments/266248.html http://www.aygfsteel.com/kiant/articles/266248.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/266248.html http://www.aygfsteel.com/kiant/services/trackbacks/266248.html 阅读全文 ]]> [转] SQL~码规范(攉) & 数据库设计经验谈(? http://www.aygfsteel.com/kiant/articles/226459.html黄小?/dc:creator>黄小?/author>Tue, 02 Sep 2008 10:03:00 GMT http://www.aygfsteel.com/kiant/articles/226459.html http://www.aygfsteel.com/kiant/comments/226459.html http://www.aygfsteel.com/kiant/articles/226459.html#Feedback 0 http://www.aygfsteel.com/kiant/comments/commentRss/226459.html http://www.aygfsteel.com/kiant/services/trackbacks/226459.html
数据库设计经验谈(?
SQL~码规范(攉) http://hi.baidu.com/rambochow/blog/item/3ebcbb3db3758903bba16743.html
1.书写格式
1 .书写格式
CZ代码Q
存储q程SQL文书写格式例
select
c.dealerCode,
round ( sum (c.submitSubletAmountDLR + c.submitPartsAmountDLR + c.submitLaborAmountDLR) / count ( * ), 2 ) as avg ,
decode( null , ' x ' , ' xx ' , ' CNY ' )
from (
select
a.dealerCode,
a.submitSubletAmountDLR,
a.submitPartsAmountDLR,
a.submitLaborAmountDLR
from SRV_TWC_F a
where (to_char(a.ORIGSUBMITTIME, ' yyyy/mm/dd ' ) >= ' Date Range(start) '
and to_char(a.ORIGSUBMITTIME, ' yyyy/mm/dd ' ) <= ' Date Range(end) '
and nvl(a.deleteflag, ' 0 ' ) <> ' 1 ' )
union all
select
b.dealerCode,
b.submitSubletAmountDLR,
b.submitPartsAmountDLR,
b.submitLaborAmountDLR
from SRV_TWCHistory_F b
where (to_char(b.ORIGSUBMITTIME, ' yyyy/mm/dd ' ) >= ' Date Range(start) '
and to_char(b.ORIGSUBMITTIME, ' yyyy/mm/dd ' ) <= ' Date Range(end) '
and nvl(b.deleteflag, ' 0 ' ) <> ' 1 ' )
) c
group by c.dealerCode
order by avg desc ;
C#中里的SQL字符串书写格式例
strSQL = " insert into Snd_FinanceHistory_Tb "
+ "(DEALERCODE, "
+ "REQUESTSEQUECE, "
+ "HANDLETIME, "
+ "JOBFLAG, "
+ "FRAMENO, "
+ "INMONEY, "
+ "REMAINMONEY, "
+ "DELETEFLAG, "
+ "UPDATECOUNT, "
+ "CREUSER, "
+ "CREDATE, "
+ "HONORCHECKNO, "
+ "SEQ) "
+ " values ( ' " + draftInputDetail.dealerCode + " ' , "
+ " ' " + draftInputDetail.requestsequece + " ' , "
+ "sysdate, "
+ " ' 07 ' , "
+ " ' " + frameNO + " ' , "
+ requestMoney + ", "
+ remainMoney + ", "
+ " ' 0 ' , "
+ " 0 , "
+ " ' " + draftStruct.employeeCode + " ' , "
+ "sysdate, "
+ " ' " + draftInputDetail.honorCheckNo + " ' , "
+ index + ")";
1 ).~进
对于存储q程文gQ羃qؓ8个空?br />
对于C#里的SQL字符Ԍ不可有羃q,x一行字W串不可以空格开?br />
2 ).换行
1 > . Select / From / Where / Order by / Group by{子句必d其一行写
2 > .Select子句内容如果只有一,与Select同行?br />
3 > .Select子句内容如果多于一,每一单独占一行,在对应Select的基上向右羃q?个空|C#无羃q)
4 > .From子句内容如果只有一,与From同行?br />
5 > .From子句内容如果多于一,每一单独占一行,在对应From的基上向右羃q?个空|C#无羃q)
6 > .Where子句的条件如果有多项Q每一个条件占一行,以AND开_且无~进
7 > .( Update )Set子句内容每一单独占一行,无羃q?br />
8 > .Insert子句内容每个表字D单独占一行,无羃q;values每一单独占一行,无羃q?br />
9 > .SQL文中间不允许出现I
10 > .C#里单引号必须跟所属的SQL子句处在同一行,q接W(" + "Q必d行首
3 ).I格
1 > .SQL内算数运符、逻辑q算W连接的两个元素之间必须用空格分?br />
2 > .逗号之后必须接一个空?br />
3 > .关键字、保留字和左括号之间必须有一个空?/span>
2.不等于统一使用"<>"。虽?SQLServer认ؓ"!="?<>"是等LQ都代表不等于的意义。ؓ了统一Q不{于一律?<>"表示
3.使用表的别名, 数据库查询,必须使用表的别名?/p>
4.SQL文对表字D|展的兼容性。在C#里用Select *Ӟ严禁通过getString(1)的Ş式得到查询结果,必须使用getString("字段?)的Ş式;使用InsertӞ必须指定插入的字D名Q严不指定字段名直接插入values
5.减少子查询的使用。子查询除了可读性差之外Q还在一定程度上影响了SQLq行效率Q请量减少使用子查询的使用Q用其他效率更高、可L更好的方式替代。
6.适当d索引以提高查询效率,适当d索引可以大幅度的提高索速度Q请参看SQLSERVER SQL性能优化pd?br />
7.Ҏ据库表操作的Ҏ要求
7 .Ҏ据库表操作的Ҏ要求
本项目对数据库表的操作还有以下特D要求:
1 ).以逻辑删除替代物理删除
注意Q现在数据库表中数据没有物理删除Q只有逻辑删除
以deleteflag字段作ؓ删除标志Qdeleteflag = ' 1 ' 代表此记录被逻辑删除Q因此在查询数据时必考虑deleteflag的因素,deleteflag的标准查询条ӞNVL(deleteflag, ' 0 ' ) <> ' 1 '
2 ).增加记录状态字Dc
数据库中的每张表基本都有以下字段QDELETEFLAG、UPDATECOUNT、CREDATE、CREUSER、UPDATETIME、UPDATEUSER
要注意在Ҏq行操作时必考虑以下字段
插入一条记录时要置DELETEFLAG = ' 0 ' , UPDATECOUNT = 0 , CREDATE = sysdate, CREUSER = dUserQ查询一条记录时要考虑DELETEFLAGQ如果有可能Ҏ记录作更新时q要取得UPDATECOUNT作同步检查 Q修改一条记录时要置UPDATETIME = sysdate, UPDATEUSER = dUser, UPDATECOUNT = (UPDATECOUNT + 1 ) mod 1000 , Q删除一条记录时要置DELETEFLAG = ' 1 '
3 ).历史表
数据库里部分表还存在相应的历史表Q比如srv_twc_f和srv_twchistory_fQ在查询数据旉了检索所在表之外Q还必须索相应的历史表,对二者的l果做UnionQ或Union All Q
8.用执行计划分析SQL性能
EXPLAIN PLAN是一个很好的分析SQL语句的工P它可以在不执行SQL的情况下分析语句。通过分析Q我们就可以知道SQLSERVER是怎样q接表,使用什么方式扫描表Q烦引扫描或全表扫描Q,以及使用到的索引名称Q按照从里到外,从上C的次序解d析的l果QEXPLAIN PLAN的分析结果是用羃q的格式排列的,最内部的操作将最先被解读Q如果两个操作处于同一层中Q带有最操作号的将首先被执行。目前许多第三方的工具如PLSQL Developer和TOAD{都提供了极其方便的EXPLAIN PLAN工具QPG需要将自己d的查询SQL文记入logQ然后在EXPLAIN PLAN中进行分析,量减少全表扫描Q?/fieldset>
]]>
վ֩ģ壺
|
|
|
|
|
|
ͨɽ |
|
|
ʯ |
|
|
۷ |
ڻ |
|
ض |
ʡ |
罭 |
|
|
|
|
齭 |
ն |
|
ˮ |
Ƥɽ |
Դ |
|
½ |
|
|
ϲ |
|
|
|
|
ϲ |
|
|
|