sql变量运算
⑴ sql中,怎么用变量
"SELECT * FROM tabelname where datepart(yy,dTime)="+year 变量不能放在字符串里面的,你这样只能用字符串拼接来做的
⑵ 如何用动态SQL语句给变量赋值
在一个问题中遇到的一段精典动态SQL代码:declare @fdate datetime
declare @sql0 nvarchar(4000)
declare @ban varchar(4),@num varchar(4),@cur_id intset @cur_id=2497
set @sql0=' SELECT @ban=b'+
case when substring(convert(char(10),@fdate,120),9,1)=0 then substring(convert(char(10),@fdate,120),10,1)
else substring(convert(char(10),@fdate,120),9,2)
end+' FROM kq_paiban'+
' where empid='''+rtrim(convert(char,@cur_id))+''' and
sessionid=(select id from s_session where convert(varchar(7),date0,120)='''+substring(convert(char(10),@fdate,120),1,7)+''')'
select (@sql0)--显示动态构造的SQL语句
--在构造动态SQL语句字符串时,对其中动态部分(比如这里的列名B1,B2[Bi]后面变化的部分i)要先运算出来,还有其中的常量部分,最后将字符串连接成完整语句.exec sp_executesql @sql0,N'@ban varchar(4) output',@num output
--这里没有使用EXEC()函数,因为该存储过程支持嵌入参数.
⑶ Sql中如何给变量赋值
DECLARE @n1 int,@n2 varchar(10)
set @n1 =(select age from table where column=xxx)
set @n2=(select gender from table where column = xxx )
------------------
或者一起赋值
就是楼上那个
DECLARE @n1 int,@n2 varchar(10)
select @n1 =age,@n2=gender
from table where column = xxx
------------------
select @n1,@n2 就知道变量的值了
⑷ 求教关于sql server中字符串变量及运算执行失败的解决方法
(case when [账单科目]=''1999'' then ''协议补收费'' else (case when 账单科目名称 like ''%套餐%'' then ''套餐费'' else (case when len(账单科目)>8 then ''SP费用'' else ''其他'' end) end) end) as 费项类型
问题应该出在这里,你这里case的时候这样写
case when convert(nvarchar(20),[账单科目])=''1999''
⑸ SQL 变量配对并计算
试试这个:
declare @name1 varchar(100)
declare @name2 varchar(100)
select @name1 = 【你的字段名】 from al
set @name2 = ' aaa_11' + @name1
select * from @name2
⑹ sql语句变量怎么写
DateAdd(day,-2,'@fname'),
@fname
是变量,但是加了‘’后,为字符串常量了,所以你的计算会出错
下面输出的结果你会看理更明白点
declare
@fname
datetime
set
@fname
=
getdate()
select
@fname
,
'@fname'
⑺ 在SQL语句中使用变量
WHEREtemperature='31'"; 变成 WHEREtemperature= t 然后执行看看控制台给你打出来的SQL是什么样的 看看这个T的表示形式 缺什么哪不对就改呗 比如控制台打出来的WHEREtemperature=31 如果想要引号 拼字符串还不好说吗 自己动手多试试
⑻ sql insert语句中如何使用变量
sql insert语句中使用变量:
(insert)向表中添加一个新记录,要使用SQL INSERT 语句。这里有一个如何使用这种语句的例子: INSERT mytable (mycolumn) VALUES (‘some data') 这个语句把字符串'some data'插入表mytable的mycolumn字段中。将要被插入数据的字段的名字在第一个括号中指定,实际的数据在第二个括号中给出。
INSERT 语句的完整句法如下:INSERT [INTO] {table_name|view_name} [(column_list)] {DEFAULT VALUES |
Values_list | select_statement}
如果一个表有多个字段,通过把字段名和字段值用逗号隔开,可以向所有的字段中插入数据。假设表mytable有三个字段first_column,second_column,和third_column.下面的INSERT语句添加了一条三个字段都有值的完整记录:INSERT mytable (first_column,second_column,third_column)
VALUES (‘some data','some more data','yet more data')
可以使用INSERT语句向文本型字段中插入数据。但是,如果需要输入很长的字符串,应该使用WRITETEXT语句。
如果在INSERT 语句中只指定两个字段和数据。向一个表中插入一条新记录,但有一个字段没有提供数据。在这种情况下,有下面的四种可能:
1)如果该字段有一个缺省值,该值会被使用。例如,假设插入新记录时没有给字段third_column提供数据,而这个字段有一个缺省值'some value'.在这种情况下,当新记录建立时会插入值'some value'。
2)如果该字段可以接受空值,而且没有缺省值,则会被插入空值。
3)如果该字段不能接受空值,而且没有缺省值,就会出现错误。会收到错误信息:The column in table mytable may not be null.
4)最后,如果该字段是一个标识字段,那么它会自动产生一个新值。当向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。
注:向一个有标识字段的表中插入新记录后,可以用SQL变量@@identity来访问新记录 的标识字段的值。考虑如下的SQL语句:
INSERT mytable (first_column) VALUES(‘some value')
INSERT anothertable(another_first,another_second)
VALUES(@@identity,'some value')
如果表mytable有一个标识字段,该字段的值会被插入表anothertable的another_first字段。这是因为变量@@identity总是保存最后一次插入标识字段的值。
字段another_first应该与字段first_column有相同的数据类型。但是,字段another_first不能是应该标识字段。Another_first字段用来保存字段first_column的值。
⑼ Sql中如何给变量赋值
/*
Sql server 存储过程中怎么将变量赋值
*/
--SQL赋值语句
DECLARE @test1 INT
SELECT @test1 = 111
SET @test1 = 222
--SQL函数赋值,假定count()是自定义函数
DECLARE @test2 INT
SELECT @test2 = COUNT(*) FROM sys.sysobjects
--SQL存储过程赋值,直接传参处理(类似C语言中的指针吗)
IF OBJECT_ID('sp_test') IS NOT NULL DROP PROCEDURE sp_test
GO
CREATE PROCEDURE sp_test(@test INT OUTPUT)
AS
BEGIN
SELECT @test = 999
GO
DECLARE @test3 INT
EXEC sp_test @test3 OUTPUT
SELECT @test3
DROP PROCEDURE sp_test
GO