Select也可以很强大,玩转Select 。
在数据库中 Select 是我们熟悉不能再熟悉的一个关键字了。 一般的情况我们用于查询的操作。
那么他还有别的其他用处吗? 最近在深入的学习SQL 发现了Select 原来变化也可以很多。
作用1 : 查询
1 -- 简单的查询操作 人尽皆知 不在赘述。
2 SELECT * FROM tab_!
作用2 : 赋值变量
1 -- 复制的作用基本与Set相同
2 DECLARE @to_1 NVARCHAR(10)
3 SELECT @to_1 = 111
4 PRINT ' @to_1的值是:' + @to_1
作用3 : 声明匿名列
-- 单纯的Select创建一个匿名列
SELECT '超人' as super
作用4 : 创建匿名表
1 -- select 和 union all 的组合创建一个匿名表格
2 SELECT '超人','男'
3 UNION ALL SELECT '蝙蝠侠','男'
4 UNION all SELECT '猫女','女'
作用5 : 创建临时表
-- select into 可以创建一个完全不存在的表,将目标表的值复制进去。
SELECT * INTO #dd FROM 库表名
---------------- 组合 ---------------
第一种 : 通过匿名列临时表添加临时表内容
1 -- 快速的创建匿名表,内容也是由SELECT 匿名的。
2 SELECT * INTO #myTab FROM (SELECT 'sp' AS title) AS tab
第二种 : 创建匿名列 直接赋值给声明的变量
-- 查询自己的匿名列直接赋值了。
DECLARE @to_1 NVARCHAR(10)
SELECT @to_1 = 111 FROM ( SELECT 'abc' AS title ) AS tab
PRINT 'Hello @to_1的值是:' + @to_1
第三种 : 创建匿名表 直接拷贝给select 创建的临时表
1 -- 临时表和匿名表都来自于SELECT
2 SELECT * INTO #theTab FROM (
3 SELECT '超人' as man ,'男' as sex
4 UNION ALL SELECT '蝙蝠侠','男'
5 UNION all SELECT '猫女','女'
6 ) AS tab
目前就想到了这几种,还有什么更高深的作用,希望各位高手指教。