sql 随笔
1、根据参数值是有、无,来决定是否需要查询出数据。obd:有、无。
DataTable _OBD(string obd )
{
string sql = "select * from obd where '" + obd + "' = '有' ";
var dt = DbhelperSQL.Query(sql).Table[0].Copy();
dt.TableName ="OBD";
return dt;
}
2、可以一次查询出两个表的信息。
select * from CFG_Station,Config
3、任何值+NULL=NULL,所以要用ISNULL(I.ELShH,I.BJBH)判断替换,要不相加后值为NULL。
4、sql中sign(x)什么意思
符号函数。若x>0,则返回1;若x=0,则返回0;若x<0,则返回-1。
5、如果select 外面没有再包一层select * ,那么最后面的where rn between 1 and 15 会报错,因为rn不是表里面的列,把他们作为表的列,在套一层select *,就可以where 里面查询 rn
select * from (select a.hphm, row_number() over(order by b.bjbh desc) as rn from JJDD b left join info a on a.bjbh=b.bjbh where b.bjrq>='2021-05-11' and b.bjrq<= '2021-10-19' ) as c where rn between 1 and 15
6、导入数据前执行语句(打开自增主键插入,有自增主键也可以在主键中插入数据):
SET IDENTITY_INSERT [dbo].[表名] ON
导入数据后执行语句(关闭自增主键插入,有自增主键不可以在主键中插入数据):
SET IDENTITY_INSERT [dbo].[表名] OFF
7、对照两表相同字段S,将一个表中字段P的内容添加到另一表的相同字段中,如何操作?
update A set A.字段P=B.字段P from B where A.字段S=B.字段S and !empty(B.字段P)