`
ronon
  • 浏览: 193714 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论
文章列表
以前很懒,都是用拼接字符串的方式,加上if 语句,根据输入参数是否为空来判断是否需要在where 后加上对应字段的条件限制 但是拼接字符串很烦,又总是被转义符搞得很烦  '''' 所以想了其他办法 分三种情况(varchar,int,date)都尝试了一下 使用case when 和通配符当主角,而不是''''''''' 不难理解,怕隔天忘记所以记一笔 alter proc sp_testParam(   @name varchar(50),   @ID int,   @sDate date,   @eDate date)asbegin --懒得要死,老是不乐意去记默认值,所以打印 ...
可以使用sqlserver自带的导出数据功能 右键-“任务”--“导出数据”--使用sqlserver身份验证,并选择数据库--下一步--填写目标服务器名称--使用sqlserver身份验证--刷新--选择目标数据库--下一步--勾选要复制过去的那个表,避免表名重复,在右边那栏改下表的名称--下一步,完成   这样,目标服务器里的指定数据库就多了刚刚指定的那个表 就可以在同一个数据库里进行相关操作了 后来发现我真是个蠢货,明明以前有写过拼接字符串的方式 以及DataBase..DataTable的方式    
一开始是要想要分离掉数据库,然后将其删除 不知道为什么一直分离不了,试了很多次,又尝试直接删除 结果数据库突然显示成了“单个用户” 尝试查看其属性,或者“新建查询”也都报错,提示已经有其他用户建立了连接什么的 通过百度找到了一段可以kill掉该数据库进程的sp,执行也仍然报错 于是,用了最直接的办法 将服务器重启了 然后执行该语句:ALTER DATABASE [数据库名] SET MULTI_USER 即可    
alter proc sp_test(     @name varchar(50))asbegin    --开始事务   begin transaction   --设置一个存储报错代码的变量   DECLARE @errorSum INT    SET @errorSum=0      --在每一条涉及到数据变动的语句后都累加一次报错代码    insert into benInfo values(117,111,'111',111,2)   SET @errorSum+=@@ERROR       update benInfo set benMoney=222222222 where p ...
--先开启cmdshell EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE GO   /**导出指定表的文本文件 */EXEC master..xp_cmdshell 'bcp dbname..tablename out D:\DT.txt -c -Sservername -Usa -Ppassword'   /**根据sql语句导出指定表的文本文件 */EXEC master..xp_cmd ...
HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。HAVING 语法与 WHERE 语法类似,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。   所以Where、Group by、Having执行的先后顺序是: Where、Group by、Having ? 先筛选数据、再对数据分组、最后对分组后的数据进行筛选
网上找了找,自己又详细总结了一下,弄清楚就好   关于 decimal(p,s)    P:精度指定可以存储的十进制数字的最大个数。精度必须是从1到最大精度之间的值。最大精度为38。   S:小数位数(超出则四舍五入) 例如:decimal(6,2) 则表示可以存储6个数字(若有小数位,则包含小数位个数)           并保留2位小数。           若超出指定的精度,例如 select cast(45356.456 as decimal(6,2))           报错信息为:“将 numeric 转换为数据类型 numeric 时出现算术溢出错误。”      ...
例如要在test表里插入多行数据 假设字段有: ID、Name 首先要有需要导入的数据的Excel A1 对应ID B1 对应Name   选中Excel第一行的空白处,比如C1,在工具栏的函数文本框里输入以下函数:   ="insert into test (ID,Name) values ("&A:A&",'"&B:B&"')"   再将鼠标放在该行,当其显示为一个粗体加号时,鼠标往下拉,一直拉到数据末尾处。 将C1行中的所有sql语句复制到sqlserver里执行。     ...
全进位 select cast(ceiling(2.1111) as dec(18,0))           结果:3
create table #temp(    id int identity(1,1),    name varchar(20),    startYear int,    startMonth int) insert into #tempselect 'z','2010','12' union allselect 'e','2011','11' union allselect 'a','2011','2' union allselect 'b','2011','5' union allselect 'c','2011','10' union allselect 'd','2011','7' ...
转自百度百科   与where 相比 HAVING 子句对 GROUP BY 子句设置条件的方式与 WHERE 子句和 SELECT 语句交互的方式类似。 WHERE 子句搜索条件在进行分组操作之前应用;而 HAVING 搜索条件在进行分组操作之后应用。 HAVING 语法与 WHERE 语法类似, where语句里不能包含聚合函数,但 HAVING 可以包含聚合函数。HAVING 子句可以引用选择列表中出现的任意项。
  如果我们想知道每个国家有多少种水果,那么我们可以通过如下SQL语句来完成:   SELECT COUNT(*) FruitName AS 水果种类, ProductPlace AS 出产国   FROM T_TEST_FRUITINFO   GROUP BY ProductPlace
CASE WHEN的两种格式 1.简单Case函数 CASE sex          WHEN '1' THEN '男'          WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE WHEN sex = '1' THEN '男'          WHEN sex = '2' THEN '女' ELSE '其他' END 1).两者相比,Case搜索函数功能更强。 2).Case函数类似于if……else if 语句,只返回第一个符合条件的值,之后的部分会被忽略   例子:(按照指定规则分组,并计算每 ...
create table #temp20110610(     id int identity(1,1),     date varchar(8),     qty float) insert into #temp20110610select '20110401',40 union allselect '20110402',64 union allselect '20110403',56 union allselect '20110404',346 union allselect '20110405',56 union allselect '20110406',678 union allsel ...
ISNULL(参数1,参数2) 若参数1为空,则返回参数2 NULLIF(参数1,参数2) 若参数1和参数2不等,则返回参数1 若参数1和参数2相等,则返回NULL 例子:ISNULL(NULLIF(字段名XX,''),'AAA') ISNUMERIC(参数1) 判断参数1是否为数字,是数字就返回1,不是数字、空字符串、Null则返回0
Global site tag (gtag.js) - Google Analytics