积极答复者
关于select列的一些疑问

问题
-
答案
-
呵呵,问题 的答案我已经找到,很简单,不用任何判断,强制验证字段的正确性:
select 1基本工资 as ttt from table
加上一个as别名,这样就会报错了,得到我想要的啦,不过,还是感谢各位给予的热心帮助,谢谢。
- 已标记为答案 Nai-dong Jin - MSFTModerator 2010年8月27日 3:14
全部回复
-
如果你使用的是2000数据库,那么最好考虑到[]问题,05的话对这个比较宽松。至少我这么认为,不过严格起来都应该将字段名或表名都加入[],以上问题如果是在存储过程中我不知道如何实现。通常我的方法是在程序中实现,然后经参数传递到T-Sql语句中进行处理,以下是我以前做过的例子,如果你感兴趣不妨参照一下,或许对你的问题有所帮助
CREATE proc [proc_aboutAdd]
@text ntext,@opter nchar(10),@pkey nchar(10),@field nchar(10)
as
if(@opter='insert')
begin
if(@pkey='nonull')--如果@pkey有值,说明其他字段已经被写值,就不能插入。改成更新,否则会新插入一行,与实际情况相违背
begin
-- 这里是05写法 update tb_other set '''+@field+'''=@text,img=@imgpath
Exec('update tb_other set '+@field+'= '''+@text+'''')
end
else
begin
Exec('insert tb_other('+@field+') values '''+@text+'''')
end
end
else
begin
Exec('update tb_other set '+@field+'= '''+@text+'''')
end
GO其中的变量@fileld就是后台代码传递过来的列名,当然在传递之前你可以为其加入[]或多字段空格分开
-
加[]有难度,因为不知道加在什么地方,就算我设计的有项目表,那也只能加在对应项上:我写一段伪代码:
declare @str varchar(100)
set @str='233基本工资+奖金+提成'--这个@str是取自前台文本框,用户任意编辑的东东啊。
用一个replace函数循环替换,最终,可能会这样:@str='233[基本工资]+[奖金]+[提成]'
不可能的是这个结果:'[233基本工资]+[奖金]+[提成]' ,而且这个233可以出现在任意位置。
select @str from table
其中的233 基本工资 奖金 提成 都是数据库对应的字段名么? 这些关键字还有可能成为其他字符么?顺便说一下你想做的功能是什么?(要实现什么样的效果)
-
加[]有难度,因为不知道加在什么地方,就算我设计的有项目表,那也只能加在对应项上:我写一段伪代码:
declare @str varchar(100)
set @str='233基本工资+奖金+提成'--这个@str是取自前台文本框,用户任意编辑的东东啊。
用一个replace函数循环替换,最终,可能会这样:@str='233[基本工资]+[奖金]+[提成]'
不可能的是这个结果:'[233基本工资]+[奖金]+[提成]' ,而且这个233可以出现在任意位置。
select @str from table
其中的233 基本工资 奖金 提成 都是数据库对应的字段名么? 这些关键字还有可能成为其他字符么?顺便说一下你想做的功能是什么?(要实现什么样的效果)
如果你单纯想把233加在基本工资前面的的话,用程序处理一下,不就可以了么?取出字符串里的数字项,经过拼拼凑我想得到你想要的效果并不是什么难事吧- 已标记为答案 fangyanqin 2010年8月21日 5:32
- 取消答案标记 fangyanqin 2010年8月21日 5:32
-
加[]有难度,因为不知道加在什么地方,就算我设计的有项目表,那也只能加在对应项上:我写一段伪代码:
declare @str varchar(100)
set @str='233基本工资+奖金+提成'--这个@str是取自前台文本框,用户任意编辑的东东啊。
用一个replace函数循环替换,最终,可能会这样:@str='233[基本工资]+[奖金]+[提成]'
不可能的是这个结果:'[233基本工资]+[奖金]+[提成]' ,而且这个233可以出现在任意位置。
select @str from table
其中的233 基本工资 奖金 提成 都是数据库对应的字段名么? 这些关键字还有可能成为其他字符么?顺便说一下你想做的功能是什么?(要实现什么样的效果)
如果你单纯想把233加在基本工资前面的的话,用程序处理一下,不就可以了么?取出字符串里的数字项,经过拼拼凑我想得到你想要的效果并不是什么难事吧
你搞误会了!这里是做检测,编辑公式正确性,不知道你有没仔细看我问题描述的。 -
呵呵,问题 的答案我已经找到,很简单,不用任何判断,强制验证字段的正确性:
select 1基本工资 as ttt from table
加上一个as别名,这样就会报错了,得到我想要的啦,不过,还是感谢各位给予的热心帮助,谢谢。
- 已标记为答案 Nai-dong Jin - MSFTModerator 2010年8月27日 3:14