社区
疑难问题
帖子详情
如何将字段中存储的字符串执行?
zhjzh_zjz
2006-05-08 11:41:43
比如有一字段birthday中存储有字符串 getdate()
如何在 select birthday from person 中得到getdate() 的执行结果,就是当前日期,而不是getdate() 这个字符串?如果是别的函数或者语句存储在字段中再取出的时候如何让它执行呢?请大虾指教!
...全文
153
11
打赏
收藏
如何将字段中存储的字符串执行?
比如有一字段birthday中存储有字符串 getdate() 如何在 select birthday from person 中得到getdate() 的执行结果,就是当前日期,而不是getdate() 这个字符串?如果是别的函数或者语句存储在字段中再取出的时候如何让它执行呢?请大虾指教!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
zhjzh_zjz
2006-05-23
打赏
举报
回复
那位高手有比较通用一点的解决办法,感激不尽!
brio8425
2006-05-09
打赏
举报
回复
有加了点见识。。呵呵。。谢谢搂住。。
子陌红尘
2006-05-08
打赏
举报
回复
SQL Server没有这样的内置函数,用户定义函数对执行execute有严格的限制,只允许执行扩展存储过程时调用。
zhjzh_zjz
2006-05-08
打赏
举报
回复
那我test表中存储的是
1 a getdate()
2 b userid()
3 c newid()
...
我想得到的结果是:
1 a 2006-05-08(当前日期)
2 b testid(当前用户)
3 c 10 (新ID)
....
有什么好的办法呢?exec只能单独执行阿,这样的情况不知道如何是好
OracleRoob
2006-05-08
打赏
举报
回复
exec('select getdate()')
动态sql语句基本语法
1 :普通SQL语句可以用Exec执行
eg: Select * from tableName
Exec('select * from tableName')
Exec sp_executesql N'select * from tableName' -- 请注意字符串前一定要加N
2:字段名,表名,数据库名之类作为变量时,必须用动态SQL
eg:
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tableName -- 错误,不会提示错误,但结果为固定值FiledName,并非所要。
Exec('select ' + @fname + ' from tableName') -- 请注意 加号前后的 单引号的边上加空格
当然将字符串改成变量的形式也可
declare @fname varchar(20)
set @fname = 'FiledName' --设置字段名
declare @s varchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句会报错
declare @s Nvarchar(1000) -- 注意此处改为nvarchar(1000)
set @s = 'select ' + @fname + ' from tableName'
Exec(@s) -- 成功
exec sp_executesql @s -- 此句正确
3. 输出参数
declare @num int,
@sqls nvarchar(4000)
set @sqls='select count(*) from tableName'
exec(@sqls)
--如何将exec执行结果放入变量中?
declare @num int, @sqls nvarchar(4000)
set @sqls='select @a=count(*) from tableName '
exec sp_executesql @sqls,N'@a int output',@num output
select @num
子陌红尘
2006-05-08
打赏
举报
回复
exec('select getdate()')
zhjzh_zjz
2006-05-08
打赏
举报
回复
又没有别的办法啊?因为我做的是一个通用的东西,要转换的字符串不是可列举的,用case行不通,是否能直接把中间的字符串执行的结果呢?不知道是否有这样的函数,就像javascript中的Eval函数可以直接执行字符串得结果的。exec在语句中不能执行阿,不知道还有什么好的办法。谢谢
powerking2
2006-05-08
打赏
举报
回复
用 EXEC 函数可以执行 字符串SQL 这就是动态SQL的内容
pengdali
2006-05-08
打赏
举报
回复
exec('getdate()')
可以执行字符串
子陌红尘
2006-05-08
打赏
举报
回复
select
case birthday
when 'getdate()' then convert(char(10),getdate(),120)
else birthday
end as birthday
from
person
冷箫轻笛
2006-05-08
打赏
举报
回复
declare @sql varchar(200)
set @sql= 'getdate()'
exec ('select ' + @sql)
尹成Python27天入门到项目实战
字符串
高级简单回顾..eval与exec简介
字符串
的简单规范
字符串
的截取
字符串
赋值规范
字符串
转义字符
字符串
常见运算符
字符串
格式化
字符串
格式化强化
字符串
编码简介dir与help查看str
字符串
函数第一个大写以及
字符串
居
中
...
Oracle
中
将Clob
字段
转换成
字符串
1.利用dbms_lob.substr()方法可将对应
字段
转换成
字符串
如下: select dbms_lob.substr(content) from NEWS 2.Java
中
转换,对
字段
大小没限制
mysql替换某个
字段
的某个
字符串
MySQL 替换 或者 删除
字段
的一部分
字符串
更新
字段
用 updatenewssetContent=null where条件--可选 就是用更新语句,只不过具体的值,需要你另外计算得到,你只说730长度,但具体的你并没有描述 mysql正则替换某个...
用一维字符数组存放
字符串
字符串
是借助于字符型一维数组来存放的,并规定以字符‘\0’作为
字符串
的结束标志,’\0’作为标志占用
存储
空间,但不计入串的实际常量 2、C语言
中
表示
字符串
常量的约定 虽然c语言
中
没有
字符串
数据类型,但却允许有...
Java
中
字符串
的
存储
方式
Java
中
字符串
的
存储
方式 Java
中
的
字符串
只能位于内存
中
的两个区域:常量池和Java堆。常量池维护了一个StringTable,它是一个hashtable,以
字符串
hashcode作为键,
字符串
引用作为值;Java堆
中
存储
的就是普通的...
疑难问题
22,209
社区成员
121,730
社区内容
发帖
与我相关
我的任务
疑难问题
MS-SQL Server 疑难问题
复制链接
扫一扫
分享
社区描述
MS-SQL Server 疑难问题
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章