C#,js和sql实用技巧选2
1.为什么"foo".Equals()不是好做法?因为当正确的写法是"foo".Equals(obj.value),却写成了"foo".Equals(obj),不会出现错误提示,从而成为一个隐蔽的bug
2.从stacktrace里提取行号:
var st = new System.Diagnostics.StackTrace(e.Error, true);
var lineNo = st.GetFrame().GetFileLineNumber();
MessageBox.Show(this, e.Error.TargetSite.ReflectedType.FullName + Environment.NewLine + e.TargetSite.Name
3.ie 6.0以后的版本,http://username:password@abc.com 这样的写法不允许了。
变通办法:
var request = new ActiveXObject('msxml2.xmlhttp');
var url = 'myurl';
request.open('GET', url, false, username, password);
window.top.location.href= url;
4.选择符合5个条件中的两个的记录
select * from T3
where
(
case when lid = @lid then 1 else 0 end +
case when lname = @lname then 1 else 0 end +
case when lpass = @lpass then 1 else 0 end +
case when ltouxiang = @ltouxiang then 1 else 0 end +
case when lxingbie = @lxingbie then 1 else 0 end ) = 3
5.sql server:只拷贝表结构,不拷贝数据
select * into tbl2 from tbl where 1 = 0
值得一提的是select into这种写法并不提倡,有可能会搞乱tempdb,另外,有时会有怪异的行为。
6.去掉最大和最小值后再算平均值:
select avg(sal)
from emp
where sal not in (
(select min(sal) from emp),
(select max(sal) from emp)
)
7.sql server的一个问题:
declare @foo int
set @foo = null
select case when @foo is null then 'bar' else <某个日期类型的字段> end as abc
会报错:
Conversion failed when converting date and/or time from character string.
但是,如果@foo 不是null,就不会报错。
8.cte感觉性能很差,宁可用物理表。而且很多情况下,物理表的性能比临时表(#temp这样的)好。在一个存储过程中,把临时表改成物理表,原来要两小时,现在只要10分钟。另外一个应用里,开始用cte实现分页,后来改成用物理表,性能提高了两倍。
9.匿名函数的一个问题:
Action foo = (bar) => {
bar = new Bar();
} Bar bar2 = null;
foo(bar2);
bar2 还是null,下面这样写才不是null:
bar = new Bar();
bar2 = bar;
10. 找某表所有相关的外键
select t.name as TableWithForeignKey, fk.constraint_column_id as FK_PartNo , c.name as ForeignKeyColumn
from sys.foreign_key_columns as fk
inner join sys.tables as t on fk.parent_object_id = t.object_id
inner join sys.columns as c on fk.parent_object_id = c.object_id and fk.parent_column_id = c.column_id
where fk.referenced_object_id = (select object_id from sys.tables where name = 'Complaint')
order by TableWithForeignKey, FK_PartNo
找外键列名:
select distinct name from sys.objects where object_id in
( select fk.constraint_object_id from sys.foreign_key_columns as fk
where fk.referenced_object_id =
(select object_id from sys.tables where name = 'Complaint')
)
C#,js和sql实用技巧选2的更多相关文章
- C#,js和sql实用技巧选1
我刚开始.net 开发的那几年,差不多每天坚持搜集实用的技巧和代码片断.几年下来也搜集了上千条.现在选出一些不太容易找或者自己有较多体会的,写在这里.内容太多,分两次发. 1.上传文件超过设置允许的最 ...
- js 处理URL实用技巧
escape().encodeURI().encodeURIComponent()三种方法都能对一些影响URL完整性的特殊字符进行过滤. 但后两者是将字符串转换为UTF-8的方式来传输,解决了 ...
- SQL实用技巧:如何将表中某一列的部分数据合并到一行中
select *,stuff(select ‘,’ + fieldname from table1 for xml path(”)),1,1,”) as field from table2 for ...
- SQL实用技巧:如何分割字符串
create function f_split(@c varchar(2000),@split varchar(2)) returns @t table(col varchar(20)) as beg ...
- SQL实用技巧:如何判断一个值是否为数字的方法
检测是不是数字型的数据, 两种方法 1. ISNUMERIC ( expression ) 2. PATINDEX ( ‘%pattern%‘ , expression ) 1. ISNUMERIC ...
- js基础进阶--编码实用技巧(二)
我的个人博客:http://www.xiaolongwu.cn 接上篇文章 js编码的实用技巧(一) 5.合理利用||运算符 使用||可以作为参数之外的默认值,当第一个参数返回值为false时,那么第 ...
- js基础进阶--编的实用技巧(一)
我的个人博客:http://www.xiaolongwu.cn 在平时的开发中,编码技巧很重要,会让你少写很多代码,起到事倍功半的效果. 下面总结几种简单的技巧,大家共同学习一下 1. 利用+.-./ ...
- .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中
目录 .NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中 前言 笔者最近在开发和维护一个.NET Core项目,其中使用几个非常有意思的.NET Core相关的扩展,在 ...
- 【JavaScript实用技巧(二)】Js操作DOM(由问题引发的文章改版,新人大佬都可)
[JavaScript实用技巧(二)]Js操作DOM(由问题引发的文章改版,新人大佬都可!) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人 ...
随机推荐
- Git的自定义和特殊文件配置
目录 备注: 知识点 自定义Git 忽略特殊文件 .gitignore忽略文件 忽略文件的原则是: 忽略文件示例 .gitignore文件查看和强制添加 备注: 本文参考于廖雪峰老师的博客Git教程. ...
- [并发编程] -- ThreadPoolExecutor篇
Executor框架 Executor框架的两级调度模型(基于HotSpot) 在上层,Java多线程程序通常把应用分解为若干个任务,然后使用用户级的调度器(Executor框架)将这些任务映射为固定 ...
- 题解 洛谷 P4569 【[BJWC2011]禁忌】
考虑用\(AC\)自动机来解决本题这样的多字符串匹配问题. 要最大化魔法分割后得到的禁忌串数目,最优情况肯定为在一个串中每个禁忌串的右端点进行分割.对应到\(AC\)自动机上,就是匹配到一个禁忌串后, ...
- C#计算数组的算术平均数、几何平均数、调和平均数、平方平均数和中位数
1.函数实现 0)打印数组 /// <summary> /// 打印数组 /// </summary> /// <param name="arr"&g ...
- 你的JavaBean是否真的需要实现Serializable
众所周知 如果一个对象需要进行网络传输,那么该对象就需要实现Serializable接口,为了防止反序列失败,该对象需提供一个默认的serialVersionUID(该值在反序列化的时候会进行校验校验 ...
- 从element-ui按需引入去探索
element-ui的按需引入的配置:文档地址 npm install babel-plugin-component -D { "presets": [["es2015& ...
- Docker CMD exec-form用于多个命令执行
这是一个通过shell形式的CMD指令运行多个命令的愚蠢示例.我更喜欢使用exec-form,但我不知道如何连接指令. 壳的形式: CMD mkdir -p ~/my/new/directory/ \ ...
- Spring学习之Spring中AOP方式切入声明式事务
mybatis-spring官方文档说明 一个使用 MyBatis-Spring 的其中一个主要原因是它允许 MyBatis 参与到 Spring 的事务管理中.而不是给 MyBatis 创建一个新的 ...
- 记一次mysql关于limit和orderby的优化
针对于大数据量查询,我们一般使用分页查询,查询出对应页的数据即可,这会大大加快查询的效率: 在排序和分页同时进行时,我们一定要注意效率问题,例如: select a.* from table1 a i ...
- PHP krsort() 函数
------------恢复内容开始------------ 实例 对关联数组按照键名进行降序排序: <?php$age=array("Peter"=>"35 ...