Select RIGHT(REPLICATE('0', 8) + CAST('12345' as NVARCHAR), 8) as '左邊補零'
, LEFT(CAST('12345' as NVARCHAR) + REPLICATE('0', 8), 8) as '右邊補零'
Select Right('00000000' + Cast(123 as varchar),8) > '00000123'
補0
REPLICATE(
'0'
,4-LEN(@strNo))+@strNo
Select
a.經紗編號
,replace(SUBSTRING(a.經紗編號,1,CHARINDEX(',',a.經紗編號 )),',','')
,SUBSTRING(a.經紗編號,1,CHARINDEX(',',a.經紗編號 ))
,SUBSTRING(a.經紗編號, CHARINDEX(',',a.經紗編號 )+1, 100) as 字
,CHARINDEX(',',a.經紗編號 )
, CHARINDEX(',',a.經紗編號 )-1 as 長度
,replace(LEFT( SUBSTRING(a.經紗編號, CHARINDEX(',',a.經紗編號 )+1, 100), CHARINDEX(',',a.經紗編號 )-1 ),',','') as 經紗號
From [織物設計二版] a
where len(SUBSTRING(a.經紗編號,1,CHARINDEX(',',a.經紗編號 )))<>0
and 布號='T70516'
引用
How to extract this specific substring in SQL Server?
SUBSTRING(YOUR_FIELD, CHARINDEX(";",YOUR_FIELD)+1, 100), CHARINDEX("[",YOUR_FIELD)-1 )
From YOUR_TABLE;
How do I extract part of a string in t-sql
http://yangxinde.pixnet.net/blog/post/24638424-%E5%9C%A8sql-server%E4%B8%AD%E5%A6%82%E4%BD%95%E5%88%87%E5%89%B2%E5%AD%97%E4%B8%B2
在一般VB或JAVA等程式語言,常常會與Substring 配合使用的 Indexof 在MS-SQL也內建了類似的函式讓使用者使用。
IndexOf 的函式一般是找尋字串中指定字元的起始值。如要在MS-SQL中使用類似找尋字元起始位置的函式語法如下:
MSSQL 语法 :
CHARINDEX ( expression1 , expression2 , [start_location ] )
如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。
同時我們一般還會配合SUBSTRING以截取字串中的所需要的字串。
MSSQL 语法 :SUBSTRING ( expression , start , length )
截取字符串expression,从start 个字符开始,到Length 结束
例子:
SELECT SUBSTRING('Picture.jpg',CHARINDEX('.','Picture.jpg'),4)
結果:
------------------------
.jpg
例子:
SELECT SUBSTRING('Picture.jpg',CHARINDEX('.','Picture.jpg'),4)
結果:
------------------------
.jpg
----------------------------------------------------------
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[Split]
(
@RowData varchar(8000),
@SplitOn nvarchar(1)
)
RETURNS @RtnValue table
(
Id int identity(1,1),
Data nvarchar(100)
)
AS
BEGIN
Declare @Cnt int
Set @Cnt = 1
While (Charindex(@SplitOn,@RowData)>0)
Begin
Insert Into @RtnValue (data)
Select
Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))
Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
Set @Cnt = @Cnt + 1
End
Insert Into @RtnValue (data)
Select Data = ltrim(rtrim(@RowData))
Return
END
SELECT CASE WHEN last_name is NULL THEN first_name ELSE first_name + ' ' + last_name