sql server 2005 如何截取字符串中的字母?

如何编写sql 语句把 book-id中的第一个字符截取后作为新的一列插入表中,然后再截前两位,作为新的一列插入。谢谢!

如果是第一位,可以直接用left()函数

select left(book_id,1) 
from  表

这样就可以了

如果是截取第一位后的前二位,要用substring()函数

select substring(book_id,2,2)
from 表

这样就可以了


有问题请继续追问

追问

Use LIBRARY
Alter table_5
Add a nvarchar b nvarchar
select left(book_id,1) from table_5
select substring(book_id,2,2) from table_5
set a=left(book_id,1)
set b=substring(book_id,2,2)
麻烦帮忙看看应该怎么修改?

追答

你是要更新字段?
不能直接这样更新的
你ALTER表之后
用update更新的
update table_5 set a=left(book_id,1),b=substring(book_id,2,2)

追问

消息 102,级别 15,状态 1,第 2 行
'table_5' 附近有语法错误。
消息 102,级别 15,状态 1,第 3 行
'a' 附近有语法错误。
还是有错误,怎么改?

追答

你的语句贴出来看看

追问

Use LIBRARY
Alter table_5
Add a nvarchar,b nvarchar
select left(book_id,1) from table_5
select substring(book_id,2,2) from table_5
update table_5
set a=left(book_id,1),b=substring(book_id,2,2)

追答

update的语句我目测没看出来问题,,
估计是
Alter table_5
Add a nvarchar,b nvarchar
这个地方的问题,印象如果只写nvarchar的话,默认是nvarchar(1)
你这个语句改下
Alter table_5
Add a varchar(20),b varchar(20)
改成这样试试

追问

不行。不是这个原因

追答

。。。。我看见了,,,
你这个地方少写了
Alter TABLE table_5-------注意这个地方
Add a varchar(20),b varchar(20)
go

select left(book_id,1) from table_5
select substring(book_id,2,2) from table_5
go

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-17
select left(book_id,1) ,left(book_id,2) from table_name
相似回答