SQL update 与case when语句求教,其实我的问题不难,只是写的详细而文字多,请大家帮下忙啊,谢谢!
请问我有这样一张表test,里面有三个字段name名字,number身份证号,birthday出生日期(datetime类型);其中number字段身份证号有两种类型,旧...
请问我有这样一张表test,里面有三个字段name名字,number身份证号,birthday出生日期(datetime类型);其中number字段身份证号有两种类型,旧身份证号15位,从第7位开始中间6位数表示出生日期,如510215450228001表示出生日期为450228;新身份证号为18位从第7位开始中间8位数表示出生日期,如512224195310250045表示出生日期为19531025;现要将身份证number当中表示出生日期的编码赋值到birthday字段中去,而老身份证号需要加上'19',如上面所提到的450228需要改成19450228再赋值到birthday字段中去。其实我的sql大体思路已经写出来了,但是有错,请大家帮我看下,谢谢:
update test
set birthday=
(case when 18 = ( select len ( number ) from test02 )
then ( select substring ( number,7,8 ) )
when 15=( select len ( number ) from test02 )
then( select substring ( number,7,6 ) )
else null end )
报错语法如图所示! 展开
update test
set birthday=
(case when 18 = ( select len ( number ) from test02 )
then ( select substring ( number,7,8 ) )
when 15=( select len ( number ) from test02 )
then( select substring ( number,7,6 ) )
else null end )
报错语法如图所示! 展开
4个回答
展开全部
(case when 18 = ( select len ( number ) from test02 )//这里取的值不是单个值 test02 是那里来?
then ( select substring ( number,7,8 ) ) //这个number是属于那个值?
when 15=( select len ( number ) from test02 )//这里取的值不是单个值
then( select substring ( number,7,6 ) ) //这个number是属于那个值?
else null end )
修改后
update test
set birthday=(case when len(number)=18 then substring ( number,7,8 )
when len(number)=15 then substring ( number,7,6 )
else null end)
then ( select substring ( number,7,8 ) ) //这个number是属于那个值?
when 15=( select len ( number ) from test02 )//这里取的值不是单个值
then( select substring ( number,7,6 ) ) //这个number是属于那个值?
else null end )
修改后
update test
set birthday=(case when len(number)=18 then substring ( number,7,8 )
when len(number)=15 then substring ( number,7,6 )
else null end)
更多追问追答
追问
你好,我的问题已经解决了,但是您的答案也非常正确,能加下好友吗 也采纳您为最佳答案
追答
function _createXmlhttp () {
var lo_http_request = false;
if (window.ActiveXObject) {
//var ld_xmlhttps=["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
var ld_xmlhttps = ["MSXML2.XMLHTTP.4.0", "MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var l_i = 0; l_i < ld_xmlhttps.length; l_i++) {
try {
lo_http_request = new ActiveXObject(ld_xmlhttps[l_i]);
break;
}
catch (ld_e) {
lo_http_request = false;
};
};
}
else {
try {
lo_http_request = new XMLHttpRequest();
}
catch (ld_e) {
lo_http_request = false;
};
};
return lo_http_request;
}
这是创建操作XML对像的函数给你个参考
展开全部
语句如下: update Table1 set ProInTime='select case when isdate('2009-你不能把那些Sql关键字放''里,提出来试试,还有Convert可以不要的 update
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2012-01-18
展开全部
同求
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询