总结一下最近实践上用到的sql语句
2012-06-24 22:49
260 查看
// 最近写的一些sql语句,感谢上级指导。(写这个文章时还不知道查postgreSql的手册,浪费了上级的时间,如果当时上级直接发我手册就好了)
// (写这个文章时实践还太少。个人觉得学习sql语言的最好方法是实践加查手册,上网搜。下面字段k_rea从 1~10,所以用了循环。pgsql可以存数组,上级说这样设计是为了方便新人,"||"是pgsql用的连接符号。mysql虽然存不了数据,不过可以存php的序列化数据,但是要查询和批量显示和求和的话,还是要1~10这样存。下面sql语句就今天看来并不值得写个博客。)
//注意 $res是资源
foreach($res as $key=>$val)
{
$sql_select .= "case when m_k.k_rea{$val['code']}='1' then '{$val['name_short']}'||'/' else '' end||";
}
$sql_select .= "''";
$sql_select = "trim(trailing '/' from {$sql_select})";
/*
注:项目是用pg做的。有的sql语句别的数据库用不了。
因为要求传一句sql到我管不了的块,不能用php联,所以用到了case when 。
后面用了trim的语句进行了剪裁。
*/
$sql_select = "select m_k.k_code,sum(case when m_k.k_mf = 1 then 1 else 0 end) as cou_k1,sum(case when m_k.k_mf = 2 then 1 else 0 end) as cou_k2";
/*
你以为需要用两句sql的,再join一下。但在不需分主次的时候,case when 更简捷。
*/
$sql = "select * from (" . $sql_b . ")A left join (" . $sql_a . ")";
/*
需要分主次的时候就join一下。
$sql_a和$sql_b比较相同的地方是
$sql_select =...
$sql_group =...(group 和 order)
$sql_on =...(join on)...
我把这三句写在前面,好加分支语句。
不同的地方是select的一部分和where部分,写在分支后面,再合上去。
如果还要求不用php来判断空,那么前面的$sql = "select * from ("
这个*就要改成——COALESCE( B.cou_k1 , 0 )什么的。
一次把sql写清楚,避免以后php的大改,当然是很好的。
*/
//嗯,用了太多"号了,php中用"效率会差一些。——这句话好像没有依据。
// (写这个文章时实践还太少。个人觉得学习sql语言的最好方法是实践加查手册,上网搜。下面字段k_rea从 1~10,所以用了循环。pgsql可以存数组,上级说这样设计是为了方便新人,"||"是pgsql用的连接符号。mysql虽然存不了数据,不过可以存php的序列化数据,但是要查询和批量显示和求和的话,还是要1~10这样存。下面sql语句就今天看来并不值得写个博客。)
//注意 $res是资源
foreach($res as $key=>$val)
{
$sql_select .= "case when m_k.k_rea{$val['code']}='1' then '{$val['name_short']}'||'/' else '' end||";
}
$sql_select .= "''";
$sql_select = "trim(trailing '/' from {$sql_select})";
/*
注:项目是用pg做的。有的sql语句别的数据库用不了。
因为要求传一句sql到我管不了的块,不能用php联,所以用到了case when 。
后面用了trim的语句进行了剪裁。
*/
$sql_select = "select m_k.k_code,sum(case when m_k.k_mf = 1 then 1 else 0 end) as cou_k1,sum(case when m_k.k_mf = 2 then 1 else 0 end) as cou_k2";
/*
你以为需要用两句sql的,再join一下。但在不需分主次的时候,case when 更简捷。
*/
$sql = "select * from (" . $sql_b . ")A left join (" . $sql_a . ")";
/*
需要分主次的时候就join一下。
$sql_a和$sql_b比较相同的地方是
$sql_select =...
$sql_group =...(group 和 order)
$sql_on =...(join on)...
我把这三句写在前面,好加分支语句。
不同的地方是select的一部分和where部分,写在分支后面,再合上去。
如果还要求不用php来判断空,那么前面的$sql = "select * from ("
这个*就要改成——COALESCE( B.cou_k1 , 0 )什么的。
一次把sql写清楚,避免以后php的大改,当然是很好的。
*/
//嗯,用了太多"号了,php中用"效率会差一些。——这句话好像没有依据。
相关文章推荐
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- sql语句语法介绍全记录,好东西,备用(用到的时候不会可以来查一下!)
- 总结一下SQL语句中引号()、quotedstr()、()、format()在SQL语句中的用法
- 自己最近用到的log4net写入oracle的配置,总结一下吧
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- 最近公司用到了lombok,感觉很不错的样子,所以上网搜了一些资料,总结了一下用法。
- 总结一下最近用到的技术(2)--JsonSchema和JsonSchemaValidator
- (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- 最近项目中用到sql的一些资料总结
- 总结一下delphi中SQL语句中引号
- 今天有空将最近用到的plist的用法总结一下,借鉴了一下前辈们的经验
- 最近学SQL语句的总结。。。
- 总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
- 总结一下最近用到的技术(1)--ultraESB
- 最近写sql语句的一个总结
- 总结一下SQL语句中引号
- 总结一下最近做得事
- 用一条sql语句查出每个name最近的记录
- 请教一下各位大侠,关于sql语句中使用case替换where条件的查询出现空行的原因