关于字符串截取的问题?

normandj 2006-04-05 02:59:38
在SQL里面有没有把汉字视为2个长度的截取函数

select left('计应0301班',5)

结果为 计应030

有没有函数 select XXXX('计应0301班',5)

得到 计应0

...全文
248 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘建 2006-04-06
  • 打赏
  • 举报
回复
-- =============================================
-- Create inline function (IF)
-- =============================================
IF EXISTS (SELECT *
FROM sysobjects
WHERE name = N'TEST_F')
DROP FUNCTION TEST_F
GO

CREATE FUNCTION TEST_F
(
@p1 varchar(100),
@p2 int )
RETURNS varchar(100)
AS
begin
RETURN substring(@p1,1,@p2)
end
GO
jixiaojie 2006-04-05
  • 打赏
  • 举报
回复
如果这样的函数在,那么

select XXXX('计应0301班',3),搂主需要返回什么值?
aniude 2006-04-05
  • 打赏
  • 举报
回复
恩,字符串函数截取时判断不了字符是一个还是2个字节的
normandj 2006-04-05
  • 打赏
  • 举报
回复
select convert(char(5),'计应0301班')

不是符合要求,要求我取右边的数据呢,或从中间截取呢
sxdoujg 2006-04-05
  • 打赏
  • 举报
回复

select convert(char(5),'计应0301班')
normandj 2006-04-05
  • 打赏
  • 举报
回复
expression   char nchar varchar nvarchar 这几个数据类型都不行
xeqtr1982 2006-04-05
  • 打赏
  • 举报
回复
expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。
normandj 2006-04-05
  • 打赏
  • 举报
回复
substring 我试了一下,还是不行。 substring (expression -要是什么数据类型才行?
iamltd 2006-04-05
  • 打赏
  • 举报
回复
SQL里面好像无法判断一个字符是双字还是单字的
没办法以select XXXX('计应0301班',5)的形式返回两个汉字+1个单字的。

xeqtr1982 2006-04-05
  • 打赏
  • 举报
回复
可以用substring

不过不满足楼主select XXXX('计应0301班',5)这个要求
-狙击手- 2006-04-05
  • 打赏
  • 举报
回复
select convert(varchar(5),'计应0301班')
-狙击手- 2006-04-05
  • 打赏
  • 举报
回复
我错了,学习 jixiaojie(太多借口)
-狙击手- 2006-04-05
  • 打赏
  • 举报
回复
没有, 自己写个函数吧
jixiaojie 2006-04-05
  • 打赏
  • 举报
回复

select convert(char(5),'计应0301班')
撸大湿 2006-04-05
  • 打赏
  • 举报
回复
PRINT SUBSTRING('计应0301班',1,3)

结果:

计应0

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧