27,579
社区成员
发帖
与我相关
我的任务
分享
USE tempdb
GO
IF OBJECT_ID('dbo.[t]') IS NOT NULL
DROP TABLE dbo.[t]
GO
CREATE TABLE dbo.[t](
ID INT,
[订单号] NVARCHAR(MAX)
,[颜色] NVARCHAR(MAX)
,[尺码] NVARCHAR(MAX)
,[数星] NVARCHAR(MAX)
)
GO
SET NOCOUNT ON
INSERT INTO dbo.[t] VALUES(1,N'A-001女式圈领衬',N'黑色',N'M',N'10')
INSERT INTO dbo.[t] VALUES(2,N'8890男式方领衬',N'白色',N'M',N'20')
INSERT INTO dbo.[t] VALUES(3,N'8801.2男童',N'黑色',N'L',N'30')
GO
IF OBJECT_ID('Fun_GetOnlyAscii') IS NOT NULL
DROP FUNCTION Fun_GetOnlyAscii
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date, ,>
-- Description: <Description, ,>
-- =============================================
CREATE FUNCTION dbo.Fun_GetOnlyAscii
(
@str NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
IF ISNULL(@str,'')=''
RETURN @str;
DECLARE @r NVARCHAR(MAX)
DECLARE @singleChar CHAR(1),@idx INT
SET @idx=1
WHILE @idx<=LEN(@str)
BEGIN
SET @singleChar=SUBSTRING(@str,@idx,1)
IF ASCII(@singleChar) BETWEEN 0 AND 127
BEGIN
SET @r=ISNULL(@r,'')+@singleChar
END
ELSE IF unicode(@singleChar) between 19968 And 40869
BEGIN
BREAK;
END
SET @idx=@idx+1;
END
RETURN @r;
END
GO
SELECT
ID
,[订单号]
,dbo.Fun_GetOnlyAscii([订单号]) AS [result]
FROM t