首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将int转换为varchar,适用于SQL Server和MS-Access

将int转换为varchar,适用于SQL Server和MS-Access
EN

Stack Overflow用户
提问于 2013-03-26 22:30:15
回答 2查看 7.4K关注 0票数 7

我必须创建与SQL Server和MS-Access兼容的查询。

问题是,在SQL Server中,我试图将数字转换为varchar。在SQL Server中,我可以像这样进行转换: MS Access中的convert(varchar(100), 5)CStr(5)

有没有可能对这两个数据库兼容呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-03-26 22:32:31

在SQL Server中,您可以编写一个名为CStr()的用户定义标量函数来执行转换。

内置例程不兼容。

不幸的是,这并不能真正起作用,因为您需要在函数前面加上一个模式名称。因此,您可以拥有:

代码语言:javascript
复制
create function cstr(@val int)
returns varchar(255) as
begin return(cast(@val as varchar(255))) end;

但你必须这样称呼它:

代码语言:javascript
复制
select dbo.cstr(4);

如果值在列中,那么可以考虑在每个数据库中的表上编写一个视图,在视图中执行转换。

要让VB同时使用Access和SQL Server,您可以放弃Access而使用真正的数据库。哦,我想这不是一个解决方案;)您将需要识别数据库的类型,并为每个数据库提供不同的代码。您可以通过使用视图来隐藏一些丑陋的地方来最小化这一点。

您可能会发现切换到SQL Server 2012会更有优势,SQL Server 2012已扩展了其功能,包括了一些访问功能。但不是cstr()

票数 5
EN

Stack Overflow用户

发布于 2013-03-27 00:05:49

我们可以将数字转换为varchar,这样:

代码语言:javascript
复制
  select format(Adress_ID,'0') ... next code

此代码将从Access和SQL Server两者转换

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15639626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档