Sql用变量拼语句

CREATE  PROC Test_GetCollegeInfo
@type int
AS
BEGIN
DECLARE  @where nvarchar(800),@v int,@sql nvarchar(max)
IF @type>2
 Begin
    SET @where=‘AND colleges.id=‘+cast(@type AS varchar(100))
 END
 ELSE
     BEGIN
         SET @where=‘‘
     END

SET @sql=‘
SELECT * FROM collegeMajor
INNER JOIN MajorsType ON  collegeMajor.majorType=MajorsType.id
INNER JOIN colleges ON colleges.id=collegeMajor.collageID
WHERE 1=1 ‘+@where  

EXEC (@sql)

End
时间: 2024-12-09 08:28:03

Sql用变量拼语句的相关文章

PL/SQL的变量

PL/SQL的变量: 变量类型: 1.系统内置的常规简单变量类型: 比如大多数 数据库表的字段类型都可以作为变量类型: 2.用户自定义复杂变量类型: 比如记录类型: 3.引用类型:保存了一个指针值: 4.大对象类型( LOB):保存了一个指向大对象的地址: 语法:  identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr]; 说明: 1.变量命名建议遵循通用规则,比如v_name 表示一个变量,c_name表示一个常量: 2.一般

SQL表变量与临时表区别 + 非游标临时表遍历

SQL表变量与临时表区别 + 非游标临时表遍历 分类: SQL Server2009-11-27 17:01 1196人阅读 评论(2) 收藏 举报 sqlinsert存储sql servermicrosoftstatistics 问题 1:为什么在已经有了临时表的情况下还要引入表变量? 解答 1:与临时表相比,表变量具有下列优点: 如 SQL Server 联机丛书“表”(Table) 一文中所述,表变量(如局部变量)具有明确定义的范围,在该范围结束时会自动清除这些表变量. 与临时表相比,表变

SQL server 查看什么语句在使用临时表

SQL server 查询那些语句在使用临时表 最近在日常的性能测试工作中发现,数据库端的IO读写比较大,有规律的2-8M的波动,数据库的版本为 SQL server 2008 sp3. 这些IO操作主要来自于临时表,在测试之前,我们已经对部分消耗资源较多的语句进行了跟踪. 对一些使用临时表的语句进行了修改,但是肯定还是有落网之鱼.我们需要对其进行甄别,做到进一步的优化. 在开始之前,我们先来了解下什么样的操作会使用到临时表: 时的用户对象, 比如临时表,表变量等(#,##,@开头的一些变量)

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29

Oracle SQL语言之查询语句_超越OCP精通Oracle视频教程培训29 本课程介绍: Oracle视频教程,风哥本套oracle教程培训是<<Oracle数据库SQL语言实战培训教程>>的第4/5套:Oracle SQL语言之查询语句.主要学习Oracle数据库SQL查询限制排序.Oracle SQL联接查询.Oracle SQL子查询等. 视频学习地址: http://edu.51cto.com/course/course_id-8047.html Oracle SQL语

PL/SQL——编程——变量定义

1.变量标量类型(scalar)复合类型(composite)参照类型(reference)lob(large object) --定义一个变长字符串v_ename VARCHAR2(10)--定义一个小数,范围-9999.99~9999.99v_sal NUMBER(6,2)--定义一个小数,并给初始值5.4,:=是plsql的赋值符v_sal2 NUMBER(6,2):=5.4--定义一个日期类型v_hiredate date--定义一个布尔量,不能为空,初始值为falsev_valid B

SQL中的LIKE语句的用法

SQL中的LIKE语句的用法 内容 在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. 假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:     select * from table1 wh

编译器--支持变量和语句块的计算器(二)

上篇文章记录了一个简单的计算器,但是只能计算一个表达式,比如计算8+3*5,得到值23.这次在其基础上添加了支持语句的功能,并且支持表达式中存在变量.比如下面: num1 := 5; num2 := num1+3*5; num3 := num1 * (num2 - 20/5); 最后计算并返回的值是num3的值80. 根据这个例子,可以看出相比于上次那个简单的计算器,添加的特性包括1.支持赋值语句  2.支持变量  3.支持多条赋值语句,也就是语句块.其中语句之间使用分号分隔,赋值符号为":=&

SQL Server快速生成SQL增删改查语句

你还在手敲代码生成SQL语句吗?你还在为因为马虎出错的SQL语句而感到无语吗?你还在为不知怎样表达复杂的SQL语句而纠结吗?如果你的回答为"是",那你就OUT啦,快来试试应用SQL Server资源管理器快速生成SQL语句吧. 首先,打开SQL Server2008,在菜单栏"查询"下拉菜单中找到"在编辑器中设计查询",如下图: 在打开的查询设计器窗口中添加要进行操作的数据库表. 在添加的表内下方空白部分右键单击鼠标,在弹出菜单中单击"

oracle mysql sql serve where in 语句的不同

类似这样的语句在mysql  oracle 是可以执行成功的, select * from classfirst where (classid ,classname) not in (select classid, classname from classfirst where classid=2 ) 但是在sql server 中提示以下错误 消息 4145,级别 15,状态 1,第 1 行在应使用条件的上下文(在 ',' 附近)中指定了非布尔类型的表达式. 所以在日常的使用中对于sql  s