关于 int 字段插入varchar字段问题 5C

我想把A表 ID (int字段自动增长 ) 插入到B表 Ids(varchar50字段)格式为(1,2,3,4)
这样的插入语句得怎么写,还有就是通过b表的ids里面的数据查询对应的A表数据这个查询语句,求指导,或者是将A表ID的内容在插入的时候自动赋值到A表Ids中

sql

8个回答

最好说明一下用的什么数据库,mysql用 find_in_set()查询,插入需要看需求了

weixin_41959951
weixin_41959951 insert into A..(NEID) select convert(varchar,NEID) from B
一年多之前 回复
xka0406
北京吃瓜群众 select * A from A.id inner join B.id
一年多之前 回复
qq_33337991
KoIibre sql sever 数据库
一年多之前 回复

什么数据库,Oracle用 find_in_set()查询,按需插入

select * from A where (select Ids from B where ) LIKE '%'+ cast (Id as varchar(50)) + '%' 我的查询是这么写的, 插入是直接数组进去的

如果是Oracle用cast(ld as verchar(50)+%)

sql server里面你想把a表的id根据条件查询出来,然后变成'1,2,3,4'这样的数据,然后插入b表中对吗?
如果是这样,你先把a表查询出来的数据拼成一个串,可以使用for xml path(''),然后插入b表
可以参考:https://blog.csdn.net/mango_love/article/details/51210020

这是将A表的ID转成成IDs字符串的语句。
INSERT B表( IDs )
SELECT CONVERT( VARCHAR, ID ) + ',' FROM A表 WHERE 条件
FOR XML PATH('')
反过来查询的话,要麻烦一点。

DECLARE @ls1 VARCHAR(2000 )
SELECT @ls1='SELECT * FROM A表 WHERE ID IN( ' + SELECT IDs FROM B表 WHERE 条件 + ')'

EXECUTE( @ls1 )

如果你想在程序中得到这个查询结果,最好写成存储过程了。这样子调用比较方便。
也可以定义一个临时表,与A表一致,这样子,就可以将EXECUTE( @ls1 )的结果插入到临时表中,再访问临时表就可以了。

cdchjn
天下有学 不能编辑,不好意思,只好写成几条了。
一年多之前 回复

SELECT @ls1='SELECT * FROM A表 WHERE ID IN( ' + SELECT IDs FROM B表 WHERE 条件 + ')'
这个地方要处理一下,因为最后面有一个逗号为导致查询失败。所以,修改一下语句为:
DECLARE @lsIDs
SELECT @lsIDs = SELECT Top 1 IDs FROM B表 WHERE 条件

SELECT @ls1='SELECT * FROM A表 WHERE ID IN( ' + SUBSTRING( lsIDs, 1, LEN( lsIDs ) - 1 ), + ')'

【通过b表的ids里面的数据查询对应的A表数据这个查询语句】也可以这样子写:
SELECT * FROM A表 WHERE CHARINDEX( ',' + CONVERT( VARCHAR, ID ) + ',', ',' + ( SELECT IDs FROM B表 WHERE 条件 ) ) > 0

SELECT * FROM A表 WHERE ',' + ( SELECT IDs FROM B表 WHERE 条件 ) LIKE '%,' + CONVERT( VARCHAR, ID ) + ',%'

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
关于varchar字段的存储问题?
我的数据库系统是sqlserver2000,我定义了一个varchar字段最大长度为7000,存汉字能存三千多,这是正常的。但为什么存代码就有问题呢?只能存3K多,顶多4K左右,按理说,一个汉字的存储长度占2个字节,三千多是对的,但字母和数字以及其它符号一般只是占一个字节呀,7000的长度起码也得存6K多吧。rn如果是超过预定长度的话,报错会说字符将被切断,但现在的报错原文如下:rn不允许从数据类型 ntext 到 varchar 的隐性转换。请使用 CONVERT 函数来运行此查询。rn这怎么回事,晕死了,请朋友们分析一下吧,谢谢了啊
关于varchar字段的空值问题
1、我在input里面什么都没有输入,但是录入数据库的时候,字段里什么都没有,也不显示null,这是为何?rn2、要如何确认我input里面没有输入,数据库里能生成null?rn3、[code=csharp] Convert.ToDecimal(Jdt.Rows[i]["ZL1"] == string.Empty ? 0 : Jdt.Rows[i]["ZL1"][/code]这段代码判断字段为空,则赋值为0,为何赋值变为了1?我这个字段确实什么都没有,数据库里也不显示null
关于varchar字段的排序
如何按一个varchar字段的值的长度来排序
关于varchar字段长度
MSSQL 表中一字段定义为varchar(128)类型,在求len的时候死活都是128长度,ltrim、rtrim都使用过了,求解,谢谢各位。
关于插入字段的问题
各位大侠帮帮忙rn如何使用VF做到:rn输入一个数比如3,程序就能自动向表(tbl1)中插入三个字段比如x1,x2,x3;rnrn再输入一个数比如2,程序就能自动向表(tbl1)中再插入两个字段x4,x5rnrn谢谢
MySQL的VARCHAR字段的问题
mysql中的varchar字段,为什么插入00555的记录时,表中存储的是555!怎么保证必须是00555呢?
varchar字段in和not in的奇怪问题。
in和not in的问题rn字段1 是varchar型数据,用rnwhere 字段1 in (select 字段 from table1)rn可以得到正确的结果,rn但用rnwhere 字段1 not in (select 字段 from table1)rn得不到任何结果,rn不知是何原因。
有关varchar字段和text字段
我的表的一个字段是varchar,长度是1000,如果只存放20各字符会浪费空间吗?rntext字段是怎么回事呢?rn请高手指点
int型字段一定比varchar字段效率高?
问下各位达人,数据库中用于检索(做索引)的字段 用 数字int类型字段 一定比 char varchar等字符串类型字段效率高吗?rn没听过这种说法啊rn有谁知道吗 确认下
MySQL中字段varchar和int排序的区别
首先我们建立一个简单的数据表,这个表只有两个字段,ID和a,a字段的类型是int类型。 我先的需求是对a字段进行正序排列SELECT * FROM `test` ORDER BY `a` ASC;这个时候我们得到了想要的数据,如下图 可是小童鞋,将a字段建成了varchar类型,这个时候我们正序查询,结果如下图 这个时候我们发现数据不是按照我们想要的顺序进行排练,而是按照第一位的数
varchar型数据插入到uniqueidentifier类型的字段
现需要将oracle数据库中varchar型数据插入到MS中uniqueidentifier型字段中如何实现数据间的转化?rnoracle,MS数据库中的字段及数据如下:rnrnrnoracle字段名称:UNITCODE(varchar),样例数据:10000032000300030328rnms字段名称:USERID(uniqueidentifier),样例数据:00000000-0000-0000-0000-000000050932rnrn求指教
insert 不能插入字符?字段为varchar
数据库中 zerodata表 namep字段为varchar (10),语句如下:rn with adoquery1 dorn beginrn close;rn sql.Clear;rn sql.Add('insert into zerodata(namep,newzero,oldzero,wtime) values(s ,' + copy(rec[1], 2, 5) + ',' + oldz[1] + ',' + formatdatetime('yyyymmddhhmmss ', now)+ ')');rn prepared := true;rn execsql;rn end;rnrn插入的第一个变量是一个字符串,无论我如何改变都不能插入,如果将其改为数字,不加单引号,就能插入。可我的字段是varchar,应该可以插入字符的。我在查询分析器中将字符加上单引号也能插入,但是在程序中做不到,请高手解答。rnrn错误信息:此处只允许使用常量、表达式或变量。不允许使用列名。
mysql5.5.53 varchar字段不能插入汉字
创建了一个//blog/分类表,如下: CREATE TABLE b_category ( id int(11) NOT NULL AUTO_INCREMENT, c_name varchar(50) NOT NULL, c_sort int(10) unsigned DEFAULT ‘0’ COMMENT ‘ÅÅÐò’, c_parent_id int(10) unsigned DEFAULT ...
varchar和tinyint类型的字段如何插入空值?
-1,null试过都不行
关于字段插入的简单问题
有一个空表table1,只有2列: id1, id2rn其中id1是key。rnrn我想把这个空表插入10000行如下数据:rnid1, id2rn1 X100rn2 X102rn3 X103rn4 X104rnrn....rnrn10000 X10099rnrn请问怎么写sql?rnrn
关于插入部份字段的问题
在一条记录中,主键已经有数据,这时如何把数据插入到另外的字段中??????
关于varchar类型字段的关联查询问题
假设有A,B两个表rnA表字段:ID,BIDrnB表字段:ID,Namernrn其中A表的BID字段是varchar类型,保存是的B表的一个或者多个ID,逗号分隔。例如:1,2,3rnrn现在需要根据BID查出对应B表的Name,请问应该怎么查询?rnrnrn例如rnA表有2条记录rnID BIDrn1 1,2,3rn2 1rnrnB表有3条记录rnID Namern1 b1rn2 b2rn3 b3rnrnrn如何得到结果:rnID BName BIDrn1 b1,b2,b3 1,2,3rn2 b1 1rnrn
关于varchar字段存储英文字附的问题?
我在数据表中用VARCHAR(10)类型设的字段,为什么在实际录入过程中可以录入10个英文小写字母,但也可录入10个大写英文字母。我想做到10个字节的VARCHAR字段,就只可以录入5个大写英文字母。请各位大哥给解释一下。
关于Varchar字段不能超过8000的问题!
我要向一个存储过程传递一个长度超过8000的varchar参数,rn但是Varchar不支持超过8000的字符串,应如何处理?rn请各位发表意见!
创建字段和插入字段
1.主键字段自增长只能使用int数据类型,且主键唯一,不能为空,能被引用;2.①date类型:mysql检索以'YYYY-MM-DD'格式显示DATE值,支持的范围是'1000-01-01'到'9999-12-31';    ②datetime类型:MySQL检索并且以'YYYY-MM-DD HH:MM:SS'格式显示DATETIME值,支持的范围是'1000-01-01 00:00:00'到'9...
int数据字段问题
有一字段为INT数据,精度为10,最大输入数据不能超过10位,如超个就提示长度大了,但我必须要用该数据类型又要超过10位,不知怎样解决?请大家帮帮忙。
关于插入递增字段
欲将表A(bh,mc)数值插入表B(xh,bh,mc)中,怎样实现xh的递增?
关于插入自增字段
现在我有这样一个需求rn表A id字段为自增字段rn表B 有一个file_id字段,有816条数据,要求把这个字段从A表中id字段最大值开始自增,比如A表现在最大值为100rnB表这个字段就从101开始rn应该如何写语句呢
mysql数据库varchar字段的存储问题
那时和同事讨论用text和varchar字段的时候,决定用varchar字段.rn他说varchar(1000)和varchar(999)会在分配空间上有差异,是这样的吗?具体标准是varchar(x)中的x是多少的时候mysql分配的空间大小会改变呢?
sql数据库varchar字段问题?
rn我使用sql设计一个表,其中一个字段为varchar型,宽度300,rn在程序中我使用如下语句统计记录个数。rnint count=0;rnwhile(!biao->IsEOF())rnrncount++;rnbiao->MoveNext();rnrn当varchar型字段中的数据超过140时,运行折断程序就会发出“数据被中断“的提示。rn请问:varchar型字段对长度有什么要求吗?rn 如果不是varchar型字段的问题,会是什么原因?rn多谢.
varchar类型 字段查询的问题
有表Arnrncode(varchar)rn0101rn010101rn0102rn0103rn0104rn010401rn010402rn0105rnrn写一个查询语句rnrn查询出大于0102的字段 结果为 0103、0104、010401、010402、0105
varchar字段数据的空格问题
比如内容是26,但后面带有一个空格--选中了看是这样的.但是用ltrim和rtrim都无法去掉.直接删空格却会把6给删掉!!!!!!!!!而2后面就会出现一个空格,向前删了2,字段也会出现一个空格,再删一下才会删光.rnrn把26 拷贝出来却没有空格rnrn初步怀疑是历史数据是全角的?对不对? rn因为这是代码关联字段,而其外键为数值,所以必须要把他们转成数值,或把代码数据字典中的数值转成能匹配的字符串.rnrn请问该怎么处理这个问题.比较难,好像....thanks
varchar字段 值+1的问题
mysql中有一张表,表中有个编号id字段设置为 varchar rn第一个值为000001rnrn我想每加一条信息,id就加1rn像第二条就变成000002rn以此类推rnrn这个应该怎么实现呀
批量修改varchar字段
表中有一字段需要批量修改rn原来是rn"我的文档.rar","他的文档.rar","你的文档.rar"...rn现在要修改成rn"我的文档","他的文档","你的文档"...
varchar字段区分大小写
在MySQL中varchar类默认不区分大小写 解决方法:      (1) alter table test change a a varchar(10) binary;      (2) select * from test where a = binary 'MY'; binary:将后边字段转换为二进制
varchar 类型字段排序
字段类型 varchar rn 字段值rn AL1rn AL28rn AL3rn AL41rn AL5rn AL33rn AL66rn AL100rn AL376rnrnrn 想让字段值按从小到大排序rn rn AL1rn AL3rn AL5rn AL28rn AL33rn AL41rn AL66rn AL100rn AL376rnrnrnselect * from table where 1=1 order by Specimen+0rnselect * from table where 1=1 order by Specimen*1rnCAST和CONVERTrn都试过,实现不了,请高手支个招。
解析VARCHAR字段
数据库中字段类型为VARCHAR,其中存储的数据是以空格分开的多个独立的数据,怎样能把这些独立的数据解析出来???rn跟大家讨个主意。多谢!
怎么向表插入Int字段??
Insert into BCSDB(BCSDB_BCMC,BCSDB_JBYXSJ,rnBCSDB_XXR,BCSDB_SJD1,BCSDB_DK1,BCSDB_KT1,BCSDB_JB1,BCSDB_XX1,BCSDB_SBSJ1,BCSDB_TQSBSJ1,BCSDB_SBCDSJ1,BCSDB_CDKGSJ1,BCSDB_XBSJ1,BCSDB_YCXBSJ1,BCSDB_XBZTSJ1,BCSDB_ZTKGSJ1) values('''+Edit_bcmc.Text+''',StrToInt(Edit_jbyxsj.Text),rn''+XXR+'',''+XX1+'',''+DK1+'',''+KT1+'',''+JB1+'',''+XX1+'',rn'''+Edit27.Text+''',StrToInt(Edit28.Text),StrToInt(Edit33.Text),StrToInt(Edit34.Text),'''+Edit31.Text+''',StrToInt(Edit29.Text),StrToInt(Edit32.Text),StrToInt(Edit30.Text))rnrn希望有人能帮改下这句错误百出的SQL,非常感谢,主要是不会插入int类型的字段.rnrnBCSDB_XXR,BCSDB_SJD1,BCSDB_DK1,BCSDB_KT1,BCSDB_JB1,BCSDB_XX1 在表里为Integer类型rnXXR,.....................................................XX1  这些对应声明为Integer类型rnrnBCSDB_YCXBSJ1,BCSDB_XBZTSJ1,BCSDB_ZTKGSJ1 在表里为Integer类型rn对应StrToInt(Edit29.Text),StrToInt(Edit32.Text),StrToInt(Edit30.Text))rn rnrnrnrn
datetime字段的插入问题
我有个数据表它里面有个datetime字段是允许为空的,如果用户在textbox中不输入任何数据,我应该怎么保存呢?相应的sql语句如下,请问该如何解决 insert into 航材库自控设备 (编号, 生产厂, 出厂日期, 使用日期, 安装地点) values (@部队编号, @生产厂, @出厂日期, @使用日期 ,@安装地点)
自动插入字段的问题
我现在要在表a里新建一个日期型字段InputDate2rn想达到这样的目的:rn每次有新记录插入,就自动产生一个类似“2005-02-04 14:44:01.743”即当前具体时间的值,怎么写语句啊?
blob字段的插入问题
我现在向一表中把一张图插入blob字段中,发现如果图片较大时,就会出错.rnFile file = new File("example.jpg");rnFileInputStream fis = new FileInputStream(file);rnString blobstr="update picture set pic_blob=? where pic_id="+pic_id;rnPreparedStatement ps = con.prepareStatement(blobstr);rnint filelen=(int) file.length();rnps.setBinaryStream(1,fis,filelen);rnps.executeUpdate();rnps.close();rnfis.close();rn不知问题出在那里,怎么解决??
MSSQL字段插入问题:
MSSQL数据库里有个BAOMING表里有BAOMINGFEI(SMALLMONEY),rnSHOUXUFEI(SMALLMONEY)二个字段。rnDim BaoMingFei_1 as CurrencyrnDim ShouXuFei_1 as Currencyrnbaomingfei_1=100rnshouxufei=2000rnstrsql = ""rnstrsql = "insert into baoming (baomingfei,shouxufei) rnvalues ( " & "'" & baomingfei_1 & "'," & "'" & shouxufei_1 & "'")"rnrnrs.Open Strsql, cn, adOpenDynamic, adLockOptimisticrn指行上面这条插入语句时提示:rn"拒绝从NVARCHAR到SMALLMONEY"rn请问这个STRSQL应该怎么写?或有别的办法吗?
字符字段插入问题
我有一张表A,里面有个字符字段a、b、crn另有一张表B,里面有备注字段krn现在我执行插入语句rninsert into Brn(k)rnSELECT ltrim(rtrim(a))+ltrim(rtrim(b))+ltrim(rtrim(c)) as krnfrom Arnrnrn如果 ltrim(rtrim(a))+ltrim(rtrim(b))+ltrim(rtrim(c)) 很长超过255个字符的话rnrn会提示将截断字符串或二进制数据。rn语句已终止。rnrn请问有什么解决办法 如果加起来确实超过255个字符 我希望 就从第一个字符开始最多截断成255个字符插入进去,如果加起来不超过255个,则按照实际字符个数插。rnrn语句需要怎么写下呢?请高手帮忙
blob字段插入问题
rn 我现在向一表中把一张图插入blob字段中,发现如果图片较大时,就会出错.rnFile file = new File("example.jpg");rnFileInputStream fis = new FileInputStream(file);rnString blobstr="update picture set pic_blob=? where pic_id="+pic_id;rnPreparedStatement ps = con.prepareStatement(blobstr);rnint filelen=(int) file.length();rnps.setBinaryStream(1,fis,filelen);rnps.executeUpdate();rnps.close();rnfis.close();rn不知问题出在那里,怎么解决?? rn
时间字段的插入问题?
在C#中文本框的时间字段的插入,不填则输入为空。rn我将这个时间字段的默认值(convert(varchar(10),getdate(),120)),rn输入为空的时候插入的时间是1900-01-01,,不懂。。rn请教下
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件