Ⅰ sql 字符串变量赋值问题
declare @goodsid nvarchar(50)
set @goodsid='789'
select *
from A
where charindex(goodsid,@goodsid)>0
SQL中没有字符(char)的概念,单个字符也是字符串,所以你给@goodsid赋值的语句就错了:你给他赋了3个字符串。
declare @goodsid nvarchar(50);
declare @index int;
set @goodsid='2;30;24547;';
select *
from A
where
(
charindex(goodsid,@goodsid)>0
and
charindex(';',@goodsid,charindex(goodsid,@goodsid))=charindex(goodsid,@goodsid)+len(goodsid)
)
Ⅱ sql语句中如何对某个为空的字段赋值
你是在查询的时候操作还是要做更新操作
是空还是null
查询时操作
NULL
select isnull(字段名, '复制)
select replace(字段名, ' ', '赋值')
更新操作
空
update 表名
set 字段名=内容
where 字段名 =''
NULL
update 表名
set 字段名=内容
where 字段名 is null
Ⅲ 如何用SQL代码将动态查询结果赋值给变量
1、首先最基本的赋值就是默认值了。
Ⅳ SQL在查询结果中增加一个变量字段,并且赋值。
declare @金价 numeric(12,2)
set @金价 = ?
select 日期,客户,金重,@金价 as 金价,金重*@金价 from 表
Ⅳ 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语句,给字段赋值
字符串里的单引号用''(即两个单引号)表示
updatehtgl_tx_logsetrolbk_sql='updatehtgl_tx_logsettx_date=11111111wherehtgl_tx_no=''6''|updatehtgl_tx_logsettx_time=111111wherehtgl_tx_no=''6'''
WHEREHTGL_TX_NO='6'
Ⅶ sql里怎么将一张表的字段赋值给另一张表
插入数据insertintoTbYTZ(UserID)selectUserIDfromTbUser更新数据则在TbUser和TbYTZ两个表要有一个关系。如TbUser.a1=TbYTZ.a2UPDATETbYTZSETTbYTZ.UserID=(.a1=TbYTZ.a2)
Ⅷ sql怎么赋值
唉。。。
@t='a' --是把'a'赋值给@t
如果 @t的值已经是'a'了 那么
@b=@t 就是把@t的值又赋值给@b
你这个@table_name 从头到尾都没赋过值 拿什么给@TableName赋值啊
(注:sql 不区分大小写 如果你是程序代码习惯可以有,用不同大小写来区分不同变量就不行了)
Ⅸ DB2的SQL脚本如何定义变量,并赋值使用执行成功有重赏哦,谢谢
用存储过程啊,给你个简单的例子
CREATE PROCEDURE SPCARDTRACE
(
IN I_CARDNO VARCHAR(10)
)
-- 存储过程功能 :
-- 创建人:
-- 创建日期:
-- 参数说明:
-- 01. : I_CARDNO 卡号
-- 02. :
-- 03. :
LANGUAGE SQL
SPECIFIC SPCARDTRACE
DYNAMIC RESULT SETS 1
MODIFIES SQL DATA
BEGIN
DECLARE V_CARDNO VARCHAR(10); --卡号
DECLARE V_EMPNAME VARCHAR(16); --持卡人
DECLARE V_CARDBALANCE DECIMAL(8,2); --卡余额
DECLARE V_HAPPENDATE INT;--统计时间
DECLARE V_MINTIME TIMESTAMP; --最小时间
DECLARE V_MAXTIME TIMESTAMP; --最大时间
DECLARE V_MINMONTH INT ;
DECLARE V_MAXMONTH INT ;
DECLARE V_ISSUECARDDATE TIMESTAMP; --发卡时间
DECLARE V_SUBSIDYMONEY DECIMAL(8,2);--补贴金额
DECLARE V_CONSUMEMONEY DECIMAL(8,2);--冲值金额
DECLARE V_PUTMONEY DECIMAL(8,2);--冲值金额
DECLARE V_OUTMONEY DECIMAL(8,2);--退款金额
DECLARE V_CHANGEMONEY DECIMAL(8,2);--改卡差额
DECLARE V_STRSQL VARCHAR(1000); --SQL
DECLARE CS CURSOR WITH RETURN TO CALLER FOR RETURNTABLE;
INSERT INTO TBCARDTRACE ( CARDNO,EMPNAME,CARDBALANCE,ISSUECARDDATE ,HAPPENDATE,
SUBSIDYMONEY,PUTMONEY,OUTMONEY ,CONSUMEMONEY,CHANGEMONEY )
VALUES (V_CARDNO,V_EMPNAME,V_CARDBALANCE,V_ISSUECARDDATE,V_HAPPENDATE,
V_SUBSIDYMONEY,V_PUTMONEY,V_OUTMONEY,V_CONSUMEMONEY,V_CHANGEMONEY);
END
Ⅹ sqlldr 如何给某个字段赋值
好像是这样的控制文件
load data
infile *
into table "TEST"
replace
(
id "case when length('')>3 then 2 else 2 end",
name position(1) char
)
begindata
a
b
c
导入后是
SQL> select * from test;
ID NAME
---------- --------------------
2 a
2 b
2 c