--------------------------------------------------------------------
-- 作者:张爱国
-- 日期:2010-01-23 15:00:17
-- 描述: 一些比较有意思的SQL语句
-- Version:
--Microsoft SQL Server 2005 - 9.00.3042.00 (Intel X86)
-- Feb 9 2007 22:47:07
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Express Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--------------------------------------------------------------------
--首先创建一个测试用的表
--一下语句中用到的表tb均指这个测试表
--1、你猜下面这条语句能得到什么结果,这个很常用
ifobject_id('tb') is not null
drop table tb
go select getdate()
create table tb(id int identity ,name varchar(10))
insert into tb select '张三'
union all select '李四'
union all select '王五'
union all select '赵六'
go
select * into ta from tb where 1<>1
--2、下面这条语句会报错吗?为什么,怎么修改才能让它输出 “正确” 这两个字
select case when 1>1 then 1
when 1=1 then '正确'
when 1<1 then 2
end
--3、 怎么才能做到下面的三条同时执行得到的结果是命令已成功完成。
--而不是select附近有语法错误
select
select 1
select
--4、 思考一下这个问题
--在master中建个表,在其它库里访问(同一服务器),不允许使用限定名,如何才能直接访问此表?
--5、 datalength() 返回用于表示任何表达式的字节数。
-- 你猜下面的结果会是什么?为什么
select datalength('1'),datalength(1),datalength(getdate()),datalength('2010-01-23 13:01:37.280')
--6、你可以试试下面的三个语句,为什么第一个会有语法错误,而第二个结果是正确的
--Ⅰ:
select * from tb order by name
union all
select * from tb
--Ⅱ:
select * from tb
union all
select * from tb order by name
--提示:执行下面的语句得到的错误信息会对你有用
select * from (select * from tb order by name) a
--7、
--再name列上创建一个简单的聚集索引
if exists (select name from sys.indexes where name = N'ix_tb_name')
drop index ix_tb_name on tb;
GO
create index ix_tb_name on tb(name)
--你猜下面两个语句哪个效率会高(当然是数据量比较大的时候)
select name from tb where left(name,1)='张'
select name from tb where name like '张%'
--扩展: 如果不加索引呢?
--8、如果你是第一次见到下面的执行结果会让你感到惊讶的,但是它很常用
--这又是什么原理呢?
declare @s varchar(100)
select @s=isnull(@s+',','') + name from tb
select @s
--9、怎么快捷简便的将还有英文日期转化为纯数字格式的
--如:将23 January 2010 或者 January 232010 转化为 2010-01-23
--提示可以巧用 set language 指令
--10、一个比较好玩的sql语句,再查询分析器里try一下
declare @sql varchar(max);
select @sql=text
from master.sys.dm_exec_requests a
CROSS APPLY master.sys.dm_exec_sql_text(a.sql_handle)
print @sql
--11、怎么忘下面的表中插入数据
--前提:不使用alter table 语句和set identity_insert 指令
create table t(id int not null identity(1,1))
/*
总结了一个多小时,刚听到个通知明天不休息,愤怒。。。。
不写了,没心情了,NND。
以后有新发现了再补充
这些都是些雕虫小技
如果你感兴趣又想知道答案的请留言
欢迎大家指教,留下你的建议和看法
相关推荐
实用总结SQL语句大全实用总结SQL语句大全实用总结SQL语句大全
全面的sql语句sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全sql语句大全
Oracle Sql语句转换成Mysql Sql语句java 源码,非常简单,只要给定源oracle sql语句地址,和生成目标文件地址运行即可。
sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明sql语句说明...
sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令sql语句命令
牛人总结的SQL语句经典SQL语句总结,中英文对照 经典SQL语句总结,中英文对照 经典SQL语句总结,中英文对照 经典SQL语句总结,中英文对照 经典SQL语句总结,中英文对照经典SQL语句总结,中英文对照 经典SQL语句总结...
常用SQL 语句大全+50个常用sql语句总结
可是实现SQL的自动生成,再也不用为调式SQL语句错误而烦恼了!
Delphi中sql语句的使用总结 Delphi中sql语句的使用总结 Delphi中sql语句的使用总结
精妙SQL语句精妙SQL语句精妙SQL语句精妙SQL语句精妙SQL语句
sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句sql注入语句...
在ibatis日志信息中打印SQL语句的方法(个人总结)
SQL 语句大全 SQL 语句大全 SQL 语句大全
非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常好的sql语句非常...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全SQL SQL语句大全
sql常用语句,sql语句,sqlserver ,查询 常用的对数据库执行的增删改查等sql语句!
Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁Sql语句收藏 - 天尊阁
非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK 非常好用的SQL Server 抓取SQL语句工具HOOK
全面掌握SQL语句 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍 详细的SQL语句介绍