请问,在数据库中是否能直接分离字符!

CSgogogo 2003-10-27 12:33:12
我有个数据表,有ZZDJ字段里面有很多记录,现在我想把ZZDJ里面所有数据的最后两个字符都取出来放到另一个字段里,直接用数据库,不用前台语言可以实现吗?
...全文
70 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
gmlxf 2003-10-27
  • 打赏
  • 举报
回复
update yourTable set newCol = isNull(right(ZZDJ,2),'')
rocllllll 2003-10-27
  • 打赏
  • 举报
回复
要么你有什么特殊问题,要么你的SQL不行
愉快的登山者 2003-10-27
  • 打赏
  • 举报
回复
最后两个字符:
right(colname,2)
txlicenhe 2003-10-27
  • 打赏
  • 举报
回复
RIGHT
返回字符串中从右边开始指定个数的 integer_expression 字符。

语法
RIGHT ( character_expression , integer_expression )

参数
character_expression

由字符数据组成的表达式。character_expression 可以是常量、变量,也可以是字符或二进制数据的列。

integer_expression

是起始位置,用正整数表示。如果 integer_expression 是负数,则返回一个错误。

返回类型
varchar

character_expression 必须为可隐性转换为 varchar 的数据类型。否则,使用 CAST 显式转换 character_expression。
snailili 2003-10-27
  • 打赏
  • 举报
回复
可以吧,新建一个字段,再把旧的一个一个字段取出来,
update set 新字段=right(旧字段1,2)+right(旧字段2,2)吧,
但字符型以外的象时间、数字就难说了
txlicenhe 2003-10-27
  • 打赏
  • 举报
回复
update 表 set 另一个字段 = right(ZZDJ,2)
CrazyFor 2003-10-27
  • 打赏
  • 举报
回复
update 表 set 另一个字段 = right(ZZDJ,2),zzdj=left(zzdj,len(zzdj)-2)
CSgogogo 2003-10-27
  • 打赏
  • 举报
回复
多谢大家了,不过你们好象只是把最后两个分离出来,但原来的字段没有截取,也就是说要把分离出来的字符在原来的记录中去掉!
pengdali 2003-10-27
  • 打赏
  • 举报
回复
ASCII() --函数返回字符表达式最左端字符的ASCII 码值
CHAR() --函数用于将ASCII 码转换为字符
--如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值
LOWER() --函数把字符串全部转换为小写
UPPER() --函数把字符串全部转换为大写
STR() --函数把数值型数据转换为字符型数据
LTRIM() --函数把字符串头部的空格去掉
RTRIM() --函数把字符串尾部的空格去掉
LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串
CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置
SOUNDEX() --函数返回一个四位字符码
--SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值
DIFFERENCE() --函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异
--0 两个SOUNDEX 函数返回值的第一个字符不同
--1 两个SOUNDEX 函数返回值的第一个字符相同
--2 两个SOUNDEX 函数返回值的第一二个字符相同
--3 两个SOUNDEX 函数返回值的第一二三个字符相同
--4 两个SOUNDEX 函数返回值完全相同


QUOTENAME() --函数返回被特定字符括起来的字符串
/*select quotename('abc', '{') quotename('abc')
运行结果如下
----------------------------------{
{abc} [abc]*/

REPLICATE() --函数返回一个重复character_expression 指定次数的字符串
/*select replicate('abc', 3) replicate( 'abc', -2)
运行结果如下
----------- -----------
abcabcabc NULL*/

REVERSE() --函数将指定的字符串的字符排列顺序颠倒
REPLACE() --函数返回被替换了指定子串的字符串
/*select replace('abc123g', '123', 'def')
运行结果如下
----------- -----------
abcdefg*/

SPACE() --函数返回一个有指定长度的空白字符串
STUFF() --函数用另一子串替换字符串指定位置长度的子串



具体用法见联机帮助
CrazyFor 2003-10-27
  • 打赏
  • 举报
回复
update 表 set 另一个字段 = right(ZZDJ,2)

DigJim 2003-10-27
  • 打赏
  • 举报
回复
update 表 set 字段1= right(字段二,2) where 字段二 like '%ZZDJ%'

34,874

社区成员

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

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