gdjlc

培养良好的习惯,每天一点一滴的进步,终将会有收获。

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  364 随笔 :: 3 文章 :: 49 评论 :: 132万 阅读

随笔分类 -  SQL

1 2 下一页

摘要:默认情况下,使用wm_concat和group by拼接字段时,拼接的字段顺序是无规则的。有2种解决方法。 阅读全文
posted @ 2021-03-04 18:15 gdjlc 阅读(5399) 评论(0) 推荐(0) 编辑

摘要:Oracle数据库的两个字段值为逗号分割的字符串,例如:字段A值为“1,2,3,5”,字段B为“2”。 想获取两个字段的交集(相同值)2,获取两个字段的差集(差异值)1,3,5。 阅读全文
posted @ 2019-10-23 09:21 gdjlc 阅读(3310) 评论(0) 推荐(0) 编辑

摘要:创建一个只读用户user2,只能查询管理员用户user1下的表,不能增删改。 阅读全文
posted @ 2019-10-11 18:11 gdjlc 阅读(11581) 评论(0) 推荐(0) 编辑

摘要:oracle sql生成临时递增数据,如1至10等等。 阅读全文
posted @ 2019-04-28 11:57 gdjlc 阅读(1695) 评论(0) 推荐(0) 编辑

摘要:oracle的loop等循环语句的几个用法小例子 阅读全文
posted @ 2017-03-20 14:21 gdjlc 阅读(1178) 评论(0) 推荐(0) 编辑

摘要:--case when用法 select case when cast(strftime('%H','now','localtime') as int) >= 6 and cast(strftime('%H','now','localtime') as int) <=12 then '上午' when cast(strftime('%H','now','localtime') as int) >12 and cast(strftime('%H','now','localtime') as int) <=18 then '下午' when cast(strftime('%H','now','localtime') as int) >18 and cast(strftime('%H','now','localtime') as int) <=23 then '晚上' else '凌晨' end; 阅读全文
posted @ 2016-04-27 15:14 gdjlc 阅读(2364) 评论(0) 推荐(0) 编辑

摘要:新个税计算公式 1500 4500 9000 35000 55000 80000 =45% 13505 阅读全文
posted @ 2012-03-14 00:02 gdjlc 阅读(1753) 评论(0) 推荐(0) 编辑

摘要:FROM T1,T2是ANSI SQL-89的旧语法,用逗号分隔FROM子句出现的表名,没有JOIN关键字,也没有ON子句,它只支持交叉联接和内联接,不支持外联接;如果没有指定联接条件就是一个交叉联接。 新的ANSI SQL-92去掉了逗号,引入了JOIN和ON,支持交叉联接、内联接和外联接。 优化器为使用上面两种语法的语句生成了相同的执行计划,性能是一样的。 阅读全文
posted @ 2012-03-06 23:45 gdjlc 阅读(4067) 评论(0) 推荐(0) 编辑

摘要:在SQL中谓词(逻辑表达式)的可能取值有TRUE、FALSE和UNKNOWN,这就是所谓的三值逻辑。UNKNOWN逻辑通常出现在涉及NULL值的逻辑表达式中,NULL代表一种缺失的值,当把一个缺失的值和另一个值(这个值也可能是NULL)进行比较时,逻辑结果总是UNKNOWN。查询筛选器(ON WHERE HAVING)都把UNKNOWN当作FALSE处理,使筛选器取值为UNKNOWN的行会被排除在结果集之外。而 CHECK结束中的UNKNOWN被当作FALSE对待,如表中一个CHECK结束要求某列大于0,向该列插入NULL值也会成功,因为 NULL>0等于UNKNOWN。在筛选器中比较两 阅读全文
posted @ 2012-03-01 23:22 gdjlc 阅读(277) 评论(0) 推荐(0) 编辑

摘要:CREATE TABLE dbo.Nums(n INT NOT NULL PRIMARY KEY); DECLARE @max AS INT, @rc AS INT; SET @max = 1000000; SET @rc = 1; INSERT INTO dbo.Nums(n) VALUES(1); WHILE @rc * 2 = @max BEGIN INSERT INTO dbo.Nums(n) SELECT n + @rc FROM dbo.Nums; SET @rc = @rc * 2; END INSERT INTO dbo.Nums(n) SELECT n + @rc FROM dbo.Nums WHERE n + @rc = @max; GO 阅读全文
posted @ 2012-02-27 23:33 gdjlc 阅读(614) 评论(0) 推荐(0) 编辑

摘要:联接运算涉及下列步骤的一个子集(取决于联接的类型):1.执行笛卡尔积cross join;2.应用on筛选器;3.添加外部行(只在外联接outer join中发生)。所以,当使用内联接inner join时哪里指定逻辑表达式on和where作用一样,因为会跳过步骤3。当使用外联接outer join时,步骤2的on筛选器对保留表中部分行的删除不是最终的,因为步骤3会把这些行再添加回来,而where筛选则是最终的。例子,先插入测试数据:USE tempdbGOif OBJECT_ID('dbo.Article') is not null drop table dbo.Articl 阅读全文
posted @ 2012-02-18 23:17 gdjlc 阅读(1153) 评论(0) 推荐(0) 编辑

摘要:--压缩文件: a 压缩,-ep 从名称中排除路径declare @sql nvarchar(200)set @sql = '"D:\Program Files\WinRAR\WinRAR.exe" a -ep F:\a.rar F:\a.txt'exec master..xp_cmdshell @sql--解压文件: e 解压,-o+ 覆盖declare @sql nvarchar(200)set @sql = '"D:\Program Files\WinRAR\WinRAR.exe" e -o+ F:\a.rar F:\ 阅读全文
posted @ 2011-11-05 14:24 gdjlc 阅读(1375) 评论(0) 推荐(0) 编辑

摘要:根据上图A表和B表,按照年份和地区生成1至12个月的数据,结果如下:方法一:select YEAR,AreaName, MAX(case Month when '1' then Money else 0 end) as [1月], MAX(case Month when '2'... 阅读全文
posted @ 2011-07-16 14:30 gdjlc 阅读(504) 评论(0) 推荐(0) 编辑

摘要:SQL Server 2008打开存储过程列表时提示:请参阅“对象资源管理器详细信息”了解此文件夹中的对象 阅读全文
posted @ 2011-03-01 10:25 gdjlc 阅读(9252) 评论(2) 推荐(1) 编辑

摘要:有时候需要执行一些Sql语句时,不想开企业管理器,或者是发给客户执行但那边又不懂代码,这时就可以用下面方法: 1、把待执行Sql保存在一个文件,这里为20110224.sql。 2、新建一个扩展名.bat的批处理文件,输入下面命令并保存后,双击.bat文件,系统会自动执行20110224.sql的语句: osql -S gdjlc -d TestDB -U sa -P 1 -i 20110224.sql osql参数见下面 阅读全文
posted @ 2011-02-24 10:12 gdjlc 阅读(4863) 评论(0) 推荐(0) 编辑

摘要:建立ODBC数据源,在Powerdesigner中选择Database菜单下的Reverse Engineer Database,弹出Database Reverse Engineering对话框,选Using an ODBC data source选择刚才创建的ODBC数据源,点击确定后,显示此数据库中所有表、视图、用户。根据需要选择后,转换成pdm。 阅读全文
posted @ 2011-02-18 09:44 gdjlc 阅读(7296) 评论(0) 推荐(0) 编辑

摘要:select id from infoid-----------123567810111215(11 行受影响)方法一:select (select max(id)+1 from Info where id<a.id) as beginId,(id-1) as endIdfrom Info a where a.id>(select max(id)+1 from Info where id<a.id)beginId endId----------- -----------4 49 913 14(3 行受影响)方法二:select beginId,(select min(id)- 阅读全文
posted @ 2010-08-23 22:11 gdjlc 阅读(848) 评论(0) 推荐(0) 编辑

摘要:select * from testid title----------- ------------------------------------1 20D32B5D-082C-47F1-9B84-FDD6F28700DC3 7662E2C4-5F3D-4425-91D1-DBAEEC70C02B5 F84E1617-D719-49DA-91F8-55DC76B66D2F6 53B15573-FD6D-46E5-A32C-BE8041E475D48 7D42962D-365F-419A-B026-4A62440A3B439 1A44340F-B78C-446E-A4D6-661EBA663E 阅读全文
posted @ 2010-07-27 00:45 gdjlc 阅读(2753) 评论(0) 推荐(1) 编辑

摘要:见:http://topic.csdn.net/u/20100625/21/cb7295e6-0514-4e28-888f-2935537208f4.html有个表pages ,有5个属性,id, url, title, body, site.问: 用一条SQL语句搜出url,body,或site中包含’test’字符串的数据,且将含有‘test’的url 的结果放在最前面,其次是body, 然后是site 且不能有重复数据如:id url title body site1 'a' 'b' 'c' 'd'2 'a' 阅读全文
posted @ 2010-06-27 14:20 gdjlc 阅读(181) 评论(0) 推荐(0) 编辑

摘要:从表中随机取4条记录: select * from (select * from 表 order by dbms_random.random) where rownum < 5 伪列2type: select * from ( select ai.activityId,ai.owner,ai.cre 阅读全文
posted @ 2010-06-17 12:14 gdjlc 阅读(351) 评论(0) 推荐(0) 编辑

1 2 下一页
点击右上角即可分享
微信分享提示