注册 登录
编程论坛 SQL Server论坛

取得数据库中某值的一部分

zdloveday 发布于 2012-07-30 17:08, 665 次点击
怎么得到数据库字段中某个值的“-”后的值
比如  name 这个字段   查询出来  得值是 H71-40
我现在怎么获取到“-”后的值
并且 这个值长度不一样  H71-40 唯一可以确定的就是他数字前都会有“-”这个线

这个用sql 语句能实现吗?
6 回复
#2
yetianshi2012-07-31 10:22
回复 楼主 zdloveday
可以用like 谓语输出吧
#3
zhukeming2012-07-31 10:46
declare @result varchar(50);
set @result ='abcd-12345';
select substring(@result,CHARINDEX('-',@result)+1,len(@result)-CHARINDEX('-',@result))

-----------------------------
运行结果:12345
#4
yetianshi2012-08-02 15:01
回复 3楼 zhukeming
学习
#5
2012-08-03 10:03
1、创建一标量值函数
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author:        <Author,,Name>
-- Create date: <Create Date, ,>
-- Description:    <Description, ,>
-- =============================================
ALTER FUNCTION [dbo].[GetTrimEnd]
(
    -- Add the parameters for the function here   
    @data varchar(100)
 )
returns varchar(100)
AS
BEGIN
    --DECLARE @data varchar(100)
    DECLARE @len int
    DECLARE @index int

    --set @data='12h3-456'
    select @len=len(@data), @index=CHARINDEX('-',@data)
    select @data=substring(@data, @index+1, @len-@index)
   
    RETURN @data
END

2、使用标题值函数
select dbo.GetTrimEnd('12h3-456')
#6
Sunpeng_Bccn2012-08-09 20:27
学习了
#7
yetianshi2012-08-10 09:18
受教
1