使用SQL Server,如何分割字符串以便可以访问项x?

取一个字符串“ Hello John Smith”。 我如何按空格分割字符串并访问索引1的项目,该项目应返回“ John”?


#1楼

我认为你们正在使它变得过于复杂。 只需创建CLR UDF并完成它即可。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using System.Collections.Generic;public partial class UserDefinedFunctions {[SqlFunction]public static SqlString SearchString(string Search) {List<string> SearchWords = new List<string>();foreach (string s in Search.Split(new char[] { ' ' })) {if (!s.ToLower().Equals("or") && !s.ToLower().Equals("and")) {SearchWords.Add(s);}}return new SqlString(string.Join(" OR ", SearchWords.ToArray()));}
};

#2楼

我知道这是一个古老的问题,但我认为可以从我的解决方案中受益。

select 
SUBSTRING(column_name,1,CHARINDEX(' ',column_name,1)-1)
,SUBSTRING(SUBSTRING(column_name,CHARINDEX(' ',column_name,1)+1,LEN(column_name)),1,CHARINDEX(' ',SUBSTRING(column_name,CHARINDEX(' ',column_name,1)+1,LEN(column_name)),1)-1)
,SUBSTRING(SUBSTRING(column_name,CHARINDEX(' ',column_name,1)+1,LEN(column_name)),CHARINDEX(' ',SUBSTRING(column_name,CHARINDEX(' ',column_name,1)+1,LEN(column_name)),1)+1,LEN(column_name))
from table_name

SQL字段

好处:

  • 它用''分隔所有3个子字符串分隔符。
  • 一个人不能使用while循环,因为它会降低性能。
  • 无需进行数据透视,因为所有生成的子字符串将显示在一行中

局限性:

  • 必须知道总数。 空格(子字符串)。

注意 :该解决方案最多可以提供N个子字符串。

为了克服限制,我们可以使用以下ref

但是同样,以上解决方案不能在表中使用(实际上我无法使用它)。

我再次希望该解决方案可以为您提供帮助。

更新:如果“记录”> 50000,则不建议使用LOOPS因为这会降低性能


#3楼

我在这里发布一种简单的解决方法

CREATE FUNCTION [dbo].[split](@delimited NVARCHAR(MAX),@delimiter NVARCHAR(100)) RETURNS @t TABLE (id INT IDENTITY(1,1), val NVARCHAR(MAX))ASBEGINDECLARE @xml XMLSET @xml = N'<t>' + REPLACE(@delimited,@delimiter,'</t><t>') + '</t>'INSERT INTO @t(val)SELECT  r.value('.','varchar(MAX)') as itemFROM  @xml.nodes('/t') as records(r)RETURNEND


执行这样的功能

  select * from dbo.split('Hello John Smith',' ')

#4楼

怎样使用stringvalues()语句?

DECLARE @str varchar(max)
SET @str = 'Hello John Smith'DECLARE @separator varchar(max)
SET @separator = ' 'DECLARE @Splited TABLE(id int IDENTITY(1,1), item varchar(max))SET @str = REPLACE(@str, @separator, '''),(''')
SET @str = 'SELECT * FROM (VALUES(''' + @str + ''')) AS V(A)' INSERT INTO @Splited
EXEC(@str)SELECT * FROM @Splited

取得成果。

id  item
1   Hello
2   John
3   Smith

#5楼

以下示例使用递归CTE

更新 18.09.2013

CREATE FUNCTION dbo.SplitStrings_CTE(@List nvarchar(max), @Delimiter nvarchar(1))
RETURNS @returns TABLE (val nvarchar(max), [level] int, PRIMARY KEY CLUSTERED([level]))
AS
BEGIN
;WITH cte AS(SELECT SUBSTRING(@List, 0, CHARINDEX(@Delimiter,  @List + @Delimiter)) AS val,CAST(STUFF(@List + @Delimiter, 1, CHARINDEX(@Delimiter, @List + @Delimiter), '') AS nvarchar(max)) AS stval, 1 AS [level]UNION ALLSELECT SUBSTRING(stval, 0, CHARINDEX(@Delimiter, stval)),CAST(STUFF(stval, 1, CHARINDEX(@Delimiter, stval), '') AS nvarchar(max)),[level] + 1FROM cteWHERE stval != '')INSERT @returnsSELECT REPLACE(val, ' ','' ) AS val, [level]FROM cteWHERE val > ''RETURN
END

关于SQLFiddle的演示


#6楼

我这样做是为了在字符串中获取特定的令牌。 (在MSSQL 2008中测试)

首先,创建以下功能:(位于: 此处

CREATE FUNCTION dbo.SplitStrings_Moden
(@List NVARCHAR(MAX),@Delimiter NVARCHAR(255)
)
RETURNS TABLE
WITH SCHEMABINDING AS
RETURNWITH E1(N)        AS ( SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1),E2(N)        AS (SELECT 1 FROM E1 a, E1 b),E4(N)        AS (SELECT 1 FROM E2 a, E2 b),E42(N)       AS (SELECT 1 FROM E4 a, E2 b),cteTally(N)  AS (SELECT 0 UNION ALL SELECT TOP (DATALENGTH(ISNULL(@List,1))) ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) FROM E42),cteStart(N1) AS (SELECT t.N+1 FROM cteTally tWHERE (SUBSTRING(@List,t.N,1) = @Delimiter OR t.N = 0))SELECT Item = SUBSTRING(@List, s.N1, ISNULL(NULLIF(CHARINDEX(@Delimiter,@List,s.N1),0)-s.N1,8000))FROM cteStart s;

create FUNCTION dbo.getToken
(
@List NVARCHAR(MAX),
@Delimiter NVARCHAR(255),
@Pos int
)
RETURNS varchar(max)
as 
begin
declare @returnValue varchar(max);
select @returnValue = tbl.Item from (
select ROW_NUMBER() over (order by (select null)) as id, * from dbo.SplitStrings_Moden(@List, @Delimiter)
) as tbl
where tbl.id = @Pos
return @returnValue
end

那么您可以像这样使用它:

select dbo.getToken('1111_2222_3333_', '_', 1)

返回1111


#7楼

我使用frederic的答案,但这在SQL Server 2005中不起作用

我修改了它,并且将selectunion all使用,并且可以正常工作

DECLARE @str varchar(max)
SET @str = 'Hello John Smith how are you'DECLARE @separator varchar(max)
SET @separator = ' 'DECLARE @Splited table(id int IDENTITY(1,1), item varchar(max))SET @str = REPLACE(@str, @separator, ''' UNION ALL SELECT ''')
SET @str = ' SELECT  ''' + @str + '''  ' INSERT INTO @Splited
EXEC(@str)SELECT * FROM @Splited

结果集为:

id  item
1   Hello
2   John
3   Smith
4   how
5   are
6   you

#8楼

Alter Function dbo.fn_Split(@Expression nvarchar(max),@Delimiter  nvarchar(20) = ',',@Qualifier  char(1) = Null)RETURNS @Results TABLE (id int IDENTITY(1,1), value nvarchar(max))ASBEGIN/* USAGESelect * From dbo.fn_Split('apple pear grape banana orange honeydew cantalope 3 2 1 4', ' ', Null)Select * From dbo.fn_Split('1,abc,"Doe, John",4', ',', '"')Select * From dbo.fn_Split('Hello 0,"&""&&&&', ',', '"')*/-- Declare VariablesDECLARE@X     xml,@Temp  nvarchar(max),@Temp2 nvarchar(max),@Start int,@End   int-- HTML Encode @ExpressionSelect @Expression = (Select @Expression For XML Path(''))-- Find all occurences of @Delimiter within @Qualifier and replace with |||***|||While PATINDEX('%' + @Qualifier + '%', @Expression) > 0 AND Len(IsNull(@Qualifier, '')) > 0BEGINSelect-- Starting character position of @Qualifier@Start = PATINDEX('%' + @Qualifier + '%', @Expression),-- @Expression starting at the @Start position@Temp = SubString(@Expression, @Start + 1, LEN(@Expression)-@Start+1),-- Next position of @Qualifier within @Expression@End = PATINDEX('%' + @Qualifier + '%', @Temp) - 1,-- The part of Expression found between the @Qualifiers@Temp2 = Case When @End < 0 Then @Temp Else Left(@Temp, @End) End,-- New @Expression@Expression = REPLACE(@Expression,@Qualifier + @Temp2 + Case When @End < 0 Then '' Else @Qualifier End,Replace(@Temp2, @Delimiter, '|||***|||'))END-- Replace all occurences of @Delimiter within @Expression with '</fn_Split>&ltfn_Split>'-- And convert it to XML so we can select from itSET@X = Cast('&ltfn_Split>' +Replace(@Expression, @Delimiter, '</fn_Split>&ltfn_Split>') +'</fn_Split>' as xml)-- Insert into our returnable table replacing '|||***|||' back to @DelimiterINSERT @ResultsSELECT"Value" = LTRIM(RTrim(Replace(C.value('.', 'nvarchar(max)'), '|||***|||', @Delimiter)))FROM@X.nodes('fn_Split') as X(C)-- Return our temp tableRETURNEND

#9楼

这里的大多数解决方案都使用while循环或递归CTE。 我保证,基于集合的方法会更好:

CREATE FUNCTION [dbo].[SplitString](@List NVARCHAR(MAX),@Delim VARCHAR(255))RETURNS TABLEASRETURN ( SELECT [Value] FROM ( SELECT [Value] = LTRIM(RTRIM(SUBSTRING(@List, [Number],CHARINDEX(@Delim, @List + @Delim, [Number]) - [Number])))FROM (SELECT Number = ROW_NUMBER() OVER (ORDER BY name)FROM sys.all_objects) AS xWHERE Number <= LEN(@List)AND SUBSTRING(@Delim + @List, [Number], LEN(@Delim)) = @Delim) AS y);

有关拆分功能的更多信息,如果拆分来自应用程序层的字符串,为什么(并证明)while循环和递归CTE无法扩展,还有更好的选择:

  • 以正确的方式分割字符串-或以次佳的方式分割
  • 分割字符串:后续
  • 拆分字符串:现在使用更少的T-SQL
  • 比较字符串分割/连接方法
  • 处理整数列表:我的方法
  • 分割整数列表:另一个综述
  • 有关拆分列表的更多信息:自定义定界符,防止重复和维护顺序
  • 从SQL Server中的字符串中删除重复项

但是,在SQL Server 2016或更高版本上,您应该查看STRING_SPLIT()STRING_AGG()

  • 性能上的惊喜和假设:STRING_SPLIT()
  • SQL Server 2016中的STRING_SPLIT():跟进#1
  • SQL Server 2016中的STRING_SPLIT():跟进#2
  • SQL Server v.Next:STRING_AGG()性能
  • 使用SQL Server的新ST​​RING_AGG和STRING_SPLIT函数解决旧问题

#10楼

您可以利用Number表来进行字符串解析。

创建一个物理数字表:

    create table dbo.Numbers (N int primary key);insert into dbo.Numbersselect top 1000 row_number() over(order by number) from master..spt_valuesgo

创建具有1000000行的测试表

    create table #yak (i int identity(1,1) primary key, array varchar(50))insert into #yak(array)select 'a,b,c' from dbo.Numbers n cross join dbo.Numbers nngo

创建功能

    create function [dbo].[ufn_ParseArray](   @Input      nvarchar(4000), @Delimiter  char(1) = ',',@BaseIdent  int)returns table asreturn  (   select  row_number() over (order by n asc) + (@BaseIdent - 1) [i],substring(@Input, n, charindex(@Delimiter, @Input + @Delimiter, n) - n) sfrom    dbo.Numberswhere   n <= convert(int, len(@Input)) andsubstring(@Delimiter + @Input, n, 1) = @Delimiter)go

用法(在我的笔记本电脑上以40秒的速度输出300万行)

    select * from #yak cross apply dbo.ufn_ParseArray(array, ',', 1)

清理

    drop table dbo.Numbers;drop function  [dbo].[ufn_ParseArray]

这里的性能并不令人惊讶,但是调用具有百万行表的函数并不是最好的主意。 如果将字符串拆分成许多行,我将避免使用该函数。


#11楼

几乎所有其他答案拆分代码都在替换要拆分的字符串,这浪费了CPU周期并执行了不必要的内存分配。

我在这里介绍了一种更好的方式来拆分字符串: http : //www.digitalruby.com/split-string-sql-server/

这是代码:

SET NOCOUNT ON-- You will want to change nvarchar(MAX) to nvarchar(50), varchar(50) or whatever matches exactly with the string column you will be searching against
DECLARE @SplitStringTable TABLE (Value nvarchar(MAX) NOT NULL)
DECLARE @StringToSplit nvarchar(MAX) = 'your|string|to|split|here'
DECLARE @SplitEndPos int
DECLARE @SplitValue nvarchar(MAX)
DECLARE @SplitDelim nvarchar(1) = '|'
DECLARE @SplitStartPos int = 1SET @SplitEndPos = CHARINDEX(@SplitDelim, @StringToSplit, @SplitStartPos)WHILE @SplitEndPos > 0
BEGINSET @SplitValue = SUBSTRING(@StringToSplit, @SplitStartPos, (@SplitEndPos - @SplitStartPos))INSERT @SplitStringTable (Value) VALUES (@SplitValue)SET @SplitStartPos = @SplitEndPos + 1SET @SplitEndPos = CHARINDEX(@SplitDelim, @StringToSplit, @SplitStartPos)
ENDSET @SplitValue = SUBSTRING(@StringToSplit, @SplitStartPos, 2147483647)
INSERT @SplitStringTable (Value) VALUES(@SplitValue)SET NOCOUNT OFF-- You can select or join with the values in @SplitStringTable at this point.

#12楼

您可能会发现SQL用户定义函数中解析带分隔符的字符串的解决方案很有用(来自The Code Project )。

您可以使用以下简单逻辑:

Declare @products varchar(200) = '1|20|3|343|44|6|8765'
Declare @individual varchar(20) = nullWHILE LEN(@products) > 0
BEGINIF PATINDEX('%|%', @products) > 0BEGINSET @individual = SUBSTRING(@products,0,PATINDEX('%|%', @products))SELECT @individualSET @products = SUBSTRING(@products,LEN(@individual + '|') + 1,LEN(@products))ENDELSEBEGINSET @individual = @productsSET @products = NULLSELECT @individualEND
END

#13楼

好吧,我的并不是那么简单,但这是我用来将逗号分隔的输入变量拆分为单个值,并将其放入表变量中的代码。 我确定您可以对此进行些微修改以基于空格进行拆分,然后针对该表变量执行基本的SELECT查询以获取结果。

-- Create temporary table to parse the list of accounting cycles.
DECLARE @tblAccountingCycles table
(AccountingCycle varchar(10)
)DECLARE @vchAccountingCycle varchar(10)
DECLARE @intPosition intSET @vchAccountingCycleIDs = LTRIM(RTRIM(@vchAccountingCycleIDs)) + ','
SET @intPosition = CHARINDEX(',', @vchAccountingCycleIDs, 1)IF REPLACE(@vchAccountingCycleIDs, ',', '') <> ''
BEGINWHILE @intPosition > 0BEGINSET @vchAccountingCycle = LTRIM(RTRIM(LEFT(@vchAccountingCycleIDs, @intPosition - 1)))IF @vchAccountingCycle <> ''BEGININSERT INTO @tblAccountingCycles (AccountingCycle) VALUES (@vchAccountingCycle)ENDSET @vchAccountingCycleIDs = RIGHT(@vchAccountingCycleIDs, LEN(@vchAccountingCycleIDs) - @intPosition)SET @intPosition = CHARINDEX(',', @vchAccountingCycleIDs, 1)END
END

这个概念几乎相同。 另一种选择是利用SQL Server 2005本身内的.NET兼容性。 您基本上可以在.NET中编写一个简单的方法,该方法将拆分字符串,然后将其公开为存储过程/函数。


#14楼

这是将要执行的UDF。 它将返回一个定界值的表​​,还没有尝试所有的方案,但是您的示例运行良好。


CREATE FUNCTION SplitString 
(-- Add the parameters for the function here@myString varchar(500),@deliminator varchar(10)
)
RETURNS 
@ReturnTable TABLE 
(-- Add the column definitions for the TABLE variable here[id] [int] IDENTITY(1,1) NOT NULL,[part] [varchar](50) NULL
)
AS
BEGINDeclare @iSpaces intDeclare @part varchar(50)--initialize spacesSelect @iSpaces = charindex(@deliminator,@myString,0)While @iSpaces > 0BeginSelect @part = substring(@myString,0,charindex(@deliminator,@myString,0))Insert Into @ReturnTable(part)Select @partSelect @myString = substring(@mystring,charindex(@deliminator,@myString,0)+ len(@deliminator),len(@myString) - charindex(' ',@myString,0))Select @iSpaces = charindex(@deliminator,@myString,0)endIf len(@myString) > 0Insert Into @ReturnTableSelect @myStringRETURN 
END
GO

您可以这样称呼它:


Select * From SplitString('Hello John Smith',' ')

编辑:更新了解决方案,以处理len> 1的delimters,如:


select * From SplitString('Hello**John**Smith','**')

#15楼

尝试这个:

CREATE function [SplitWordList]
(@list varchar(8000)
)
returns @t table 
(Word varchar(50) not null,Position int identity(1,1) not null
)
as begindeclare @pos int,@lpos int,@item varchar(100),@ignore varchar(100),@dl int,@a1 int,@a2 int,@z1 int,@z2 int,@n1 int,@n2 int,@c varchar(1),@a smallintselect @a1 = ascii('a'),@a2 = ascii('A'),@z1 = ascii('z'),@z2 = ascii('Z'),@n1 = ascii('0'),@n2 = ascii('9')set @ignore = '''"'set @pos = 1set @dl = datalength(@list)set @lpos = 1set @item = ''while (@pos <= @dl) beginset @c = substring(@list, @pos, 1)if (@ignore not like '%' + @c + '%') beginset @a = ascii(@c)if ((@a >= @a1) and (@a <= @z1))  or ((@a >= @a2) and (@a <= @z2))or ((@a >= @n1) and (@a <= @n2))beginset @item = @item + @cend else if (@item > '') begininsert into @t values (@item)set @item = ''endend set @pos = @pos + 1endif (@item > '') begininsert into @t values (@item)endreturn
end

像这样测试它:

select * from SplitWordList('Hello John Smith')

#16楼

我不相信SQL Server具有内置的拆分功能,因此除了UDF之外,我知道的唯一其他答案是劫持PARSENAME函数:

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 2) 

PARSENAME接受一个字符串并将其分割为句点字符。 它以数字作为第二个参数,该数字指定要返回的字符串段(从后到前)。

SELECT PARSENAME(REPLACE('Hello John Smith', ' ', '.'), 3)  --return Hello

明显的问题是字符串已经包含句点。 我仍然认为使用UDF是最好的方法...还有其他建议吗?


#17楼

这种模式可以正常工作,您可以概括

Convert(xml,'<n>'+Replace(FIELD,'.','</n><n>')+'</n>').value('(/n[INDEX])','TYPE')^^^^^                                   ^^^^^     ^^^^

注意FIELDINDEXTYPE

让一些带有标识符的表

sys.message.1234.warning.A45
sys.message.1235.error.O98
....

然后,你可以写

SELECT Source         = q.value('(/n[1])', 'varchar(10)'),RecordType     = q.value('(/n[2])', 'varchar(20)'),RecordNumber   = q.value('(/n[3])', 'int'),Status         = q.value('(/n[4])', 'varchar(5)')
FROM   (SELECT   q = Convert(xml,'<n>'+Replace(fieldName,'.','</n><n>')+'</n>')FROM     some_TABLE) Q

分割并铸造所有零件。


#18楼

首先,创建一个函数(使用CTE,通用表表达式消除了对临时表的需要)

 create function dbo.SplitString (@str nvarchar(4000), @separator char(1))returns tableASreturn (with tokens(p, a, b) AS (select 1, 1, charindex(@separator, @str)union allselectp + 1, b + 1, charindex(@separator, @str, b + 1)from tokenswhere b > 0)selectp-1 zeroBasedOccurance,substring(@str, a, case when b > 0 then b-a ELSE 4000 end) AS sfrom tokens)GO

然后,将其用作任何表(或对其进行修改以适合您现有的存储过程),如下所示。

select s 
from dbo.SplitString('Hello John Smith', ' ')
where zeroBasedOccurance=1

更新资料

如果输入字符串超过4000个字符,则先前版本将失败。 此版本解决了限制:

create function dbo.SplitString 
(@str nvarchar(max), @separator char(1)
)
returns table
AS
return (
with tokens(p, a, b) AS (select cast(1 as bigint), cast(1 as bigint), charindex(@separator, @str)union allselectp + 1, b + 1, charindex(@separator, @str, b + 1)from tokenswhere b > 0
)
selectp-1 ItemIndex,substring(@str, a, case when b > 0 then b-a ELSE LEN(@str) end) AS s
from tokens
);GO

用法保持不变。


#19楼

使用带有递归CTE TVF的基于纯集的解决方案。 您可以将此函数JOINAPPLY到任何数据集。

create function [dbo].[SplitStringToResultSet] (@value varchar(max), @separator char(1))
returns table
as return
with r as (select value, cast(null as varchar(max)) [x], -1 [no] from (select rtrim(cast(@value as varchar(max))) [value]) as junion allselect right(value, len(value)-case charindex(@separator, value) when 0 then len(value) else charindex(@separator, value) end) [value], left(r.[value], case charindex(@separator, r.value) when 0 then len(r.value) else abs(charindex(@separator, r.[value])-1) end ) [x], [no] + 1 [no]from r where value > '')select ltrim(x) [value], [no] [index] from r where x is not null;
go

用法:

select *
from [dbo].[SplitStringToResultSet]('Hello John Smith', ' ')
where [index] = 1;

结果:

value   index
-------------
John    1

#20楼

您可以在SQL中拆分字符串而无需使用函数:

DECLARE @bla varchar(MAX)
SET @bla = 'BED40DFC-F468-46DD-8017-00EF2FA3E4A4,64B59FC5-3F4D-4B0E-9A48-01F3D4F220B0,A611A108-97CA-42F3-A2E1-057165339719,E72D95EA-578F-45FC-88E5-075F66FD726C'-- http://stackoverflow.com/questions/14712864/how-to-query-values-from-xml-nodes
SELECT x.XmlCol.value('.', 'varchar(36)') AS val 
FROM 
(SELECT CAST('<e>' + REPLACE(@bla, ',', '</e><e>') + '</e>' AS xml) AS RawXml
) AS b 
CROSS APPLY b.RawXml.nodes('e') x(XmlCol);

如果您需要支持任意字符串(带有xml特殊字符)

DECLARE @bla NVARCHAR(MAX)
SET @bla = '<html>unsafe & safe Utf8CharsDon''tGetEncoded ÄöÜ - "Conex"<html>,Barnes & Noble,abc,def,ghi'-- http://stackoverflow.com/questions/14712864/how-to-query-values-from-xml-nodes
SELECT x.XmlCol.value('.', 'nvarchar(MAX)') AS val 
FROM 
(SELECT CAST('<e>' + REPLACE((SELECT @bla FOR XML PATH('')), ',', '</e><e>') + '</e>' AS xml) AS RawXml
) AS b 
CROSS APPLY b.RawXml.nodes('e') x(XmlCol); 

#21楼

另一个通过定界符函数获得字符串的第n部分:

create function GetStringPartByDelimeter (@value as nvarchar(max),@delimeter as nvarchar(max),@position as int
) returns NVARCHAR(MAX) 
AS BEGINdeclare @startPos as intdeclare @endPos as intset @endPos = -1while (@position > 0 and @endPos != 0) beginset @startPos = @endPos + 1set @endPos = charindex(@delimeter, @value, @startPos)if(@position = 1) beginif(@endPos = 0)set @endPos = len(@value) + 1return substring(@value, @startPos, @endPos - @startPos)endset @position = @position - 1endreturn null
end

和用法:

select dbo.GetStringPartByDelimeter ('a;b;c;d;e', ';', 3)

返回:

c

#22楼

这个问题与字符串分割方法无关 ,而与如何获取第n个元素有关

这里的所有答案都使用递归, CTE ,多个CHARINDEXREVERSEPATINDEX进行某种字符串拆分,发明了功能,要求CLR方法,数字表, CROSS APPLY ……大多数答案涵盖了许多行代码。

但是-如果您真的只想获取第n个元素的方法 -可以将其作为真正的单行代码 ,无UDF,甚至不包括子选择来完成...还有一个额外的好处: 输入安全

获取第2部分,以空格分隔:

DECLARE @input NVARCHAR(100)=N'part1 part2 part3';
SELECT CAST(N'<x>' + REPLACE(@input,N' ',N'</x><x>') + N'</x>' AS XML).value('/x[2]','nvarchar(max)')

当然, 您可以将变量用于定界符和位置(使用sql:column直接从查询的值中检索位置):

DECLARE @dlmt NVARCHAR(10)=N' ';
DECLARE @pos INT = 2;
SELECT CAST(N'<x>' + REPLACE(@input,@dlmt,N'</x><x>') + N'</x>' AS XML).value('/x[sql:variable("@pos")][1]','nvarchar(max)')

如果您的字符串中可能包含禁止使用的字符 (尤其是&><之中的一个),您仍然可以采用这种方式。 只需先在字符串上使用FOR XML PATH ,即可用适合的转义序列隐式替换所有禁止的字符。

如果-另外- 您的分隔符是分号,则这是一个非常特殊的情况。 在这种情况下,我首先将定界符替换为“#DLMT#”,最后将其替换为XML标签:

SET @input=N'Some <, > and &;Other äöü@€;One more';
SET @dlmt=N';';
SELECT CAST(N'<x>' + REPLACE((SELECT REPLACE(@input,@dlmt,'#DLMT#') AS [*] FOR XML PATH('')),N'#DLMT#',N'</x><x>') + N'</x>' AS XML).value('/x[sql:variable("@pos")][1]','nvarchar(max)');

SQL-Server 2016+的更新

遗憾的是,开发人员忘了用STRING_SPLIT返回部件的索引。 但是,使用SQL Server 2016+,有JSON_VALUEOPENJSON

使用JSON_VALUE我们可以将位置作为索引的数组传递。

对于OPENJSON , 文档明确指出:

当OPENJSON解析JSON数组时,该函数将JSON文本中元素的索引作为键返回。

1,2,3这样的字符串只需要括号: [1,2,3]
this is an example字符串this is an example需要为["this","is","an","example"]
这些是非常简单的字符串操作。 只需尝试一下:

DECLARE @str VARCHAR(100)='Hello John Smith';
DECLARE @position INT = 2;--We can build the json-path '$[1]' using CONCAT
SELECT JSON_VALUE('["' + REPLACE(@str,' ','","') + '"]',CONCAT('$[',@position-1,']'));

-有关位置安全的字符串分隔符( 从零开始 ),请参见以下内容:

SELECT  JsonArray.[key] AS [Position],JsonArray.[value] AS [Part]
FROM OPENJSON('["' + REPLACE(@str,' ','","') + '"]') JsonArray

在这篇文章中,我测试了各种方法,发现OPENJSON确实非常快。 甚至比著名的“ delimitedSplit8k()”方法要快得多。

更新2-获取值类型安全

我们可以简单地通过使用double [[]] 在数组中使用数组 。 这允许输入WITH -clause:

DECLARE  @SomeDelimitedString VARCHAR(100)='part1|1|20190920';DECLARE @JsonArray NVARCHAR(MAX)=CONCAT('[["',REPLACE(@SomeDelimitedString,'|','","'),'"]]');SELECT @SomeDelimitedString          AS TheOriginal,@JsonArray                    AS TransformedToJSON,ValuesFromTheArray.*
FROM OPENJSON(@JsonArray)
WITH(TheFirstFragment  VARCHAR(100) '$[0]',TheSecondFragment INT          '$[1]',TheThirdFragment  DATE         '$[2]') ValuesFromTheArray

#23楼

SQL Server 2016开始,我们string_split

DECLARE @string varchar(100) = 'Richard, Mike, Mark'SELECT value FROM string_split(@string, ',')

#24楼

使用STRING_SPLIT的现代方法需要SQL Server 2016及更高版本。

DECLARE @string varchar(100) = 'Hello John Smith'SELECTROW_NUMBER() OVER (ORDER BY value) AS RowNr,value
FROM string_split(@string, ' ')

结果:

RowNr   value
1       Hello
2       John
3       Smith

现在可以从行号中获取第n个元素。


#25楼

亚伦·伯特兰(Aaron Bertrand)的回答很好,但是有缺陷。 由于长度函数会删除尾随空格,因此它无法准确地将空格作为定界符(就像原始问题中的示例一样)。

以下是他的代码,进行了一些小的调整以允许使用空格分隔符:

CREATE FUNCTION [dbo].[SplitString]
(@List NVARCHAR(MAX),@Delim VARCHAR(255)
)
RETURNS TABLE
ASRETURN ( SELECT [Value] FROM ( SELECT [Value] = LTRIM(RTRIM(SUBSTRING(@List, [Number],CHARINDEX(@Delim, @List + @Delim, [Number]) - [Number])))FROM (SELECT Number = ROW_NUMBER() OVER (ORDER BY name)FROM sys.all_objects) AS xWHERE Number <= LEN(@List)AND SUBSTRING(@Delim + @List, [Number], LEN(@Delim+'x')-1) = @Delim) AS y);

#26楼

如果数据库的兼容性级别为130或更高,则可以将STRING_SPLIT函数与OFFSET FETCH子句一起使用,以按索引获取特定项。

要获得索引为N (从零开始)的商品,可以使用以下代码

SELECT value
FROM STRING_SPLIT('Hello John Smith',' ')
ORDER BY (SELECT NULL)
OFFSET N ROWS
FETCH NEXT 1 ROWS ONLY

要检查数据库的兼容性级别,请执行以下代码:

SELECT compatibility_level  
FROM sys.databases WHERE name = 'YourDBName';

#27楼

这是一个函数,可以完成问题的目标,即分割字符串并访问项X:

CREATE FUNCTION [dbo].[SplitString]
(@List       VARCHAR(MAX),@Delimiter  VARCHAR(255),@ElementNumber INT
)
RETURNS VARCHAR(MAX)
AS
BEGINDECLARE @inp VARCHAR(MAX)SET @inp = (SELECT REPLACE(@List,@Delimiter,'_DELMTR_') FOR XML PATH(''))DECLARE @xml XMLSET @xml = '<split><el>' + REPLACE(@inp,'_DELMTR_','</el><el>') + '</el></split>'DECLARE @ret VARCHAR(MAX)SET @ret = (SELECTel = split.el.value('.','varchar(max)')FROM  @xml.nodes('/split/el[string-length(.)>0][position() = sql:variable("@elementnumber")]') split(el))RETURN @retEND

用法:

SELECT dbo.SplitString('Hello John Smith', ' ', 2)

结果:

John

#28楼

解析姓氏和名字的简单解决方案

DECLARE @Name varchar(10) = 'John Smith'-- Get First Name
SELECT SUBSTRING(@Name, 0, (SELECT CHARINDEX(' ', @Name)))-- Get Last Name
SELECT SUBSTRING(@Name, (SELECT CHARINDEX(' ', @Name)) + 1, LEN(@Name))

在我的情况下(以及在许多其他情况下...),我有一个名字和姓氏列表,以单个空格分隔。 可以在select语句中直接使用它来解析名字和姓氏。

-- i.e. Get First and Last Name from a table of Full Names
SELECT SUBSTRING(FullName, 0, (SELECT CHARINDEX(' ', FullName))) as FirstName,
SUBSTRING(FullName, (SELECT CHARINDEX(' ', FullName)) + 1, LEN(FullName)) as LastName,
From FullNameTable

#29楼

我知道它已经很晚了,但是我最近有这个要求,并提出了以下代码。 我没有选择使用用户定义的功能。 希望这可以帮助。

SELECT SUBSTRING(SUBSTRING('Hello John Smith' ,0,CHARINDEX(' ','Hello John Smith',CHARINDEX(' ','Hello John Smith')+1)),CHARINDEX(' ','Hello John Smith'),LEN('Hello John Smith'))

#30楼

我一直在寻找在线解决方案,以下内容对我来说很有效。 参考

然后调用这样的函数:

SELECT * FROM dbo.split('ram shyam hari gopal',' ')

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOCREATE FUNCTION [dbo].[Split](@String VARCHAR(8000), @Delimiter CHAR(1))       
RETURNS @temptable TABLE (items VARCHAR(8000))       
AS       
BEGIN       DECLARE @idx INT       DECLARE @slice VARCHAR(8000)        SELECT @idx = 1       IF len(@String)<1 OR @String IS NULL  RETURN       WHILE @idx!= 0       BEGIN       SET @idx = charindex(@Delimiter,@String)       IF @idx!=0       SET @slice = LEFT(@String,@idx - 1)       ELSE       SET @slice = @String       IF(len(@slice)>0)  INSERT INTO @temptable(Items) VALUES(@slice)       SET @String = RIGHT(@String,len(@String) - @idx)       IF len(@String) = 0 break       END   RETURN       
END
查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. 11 Java抽象类 详解

    目录1.抽象类的基本概念2.抽象类的使用3.抽象类的使用限制4.抽象类的应用——模板设计模式 1.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法、普通方法、static方法、常量和变量等内容。而抽象类是指在普通类的结构里…...

    2024/3/29 14:05:55
  2. Tensorflow各种版本下载地址(收藏)

    https://pypi.tuna.tsinghua.edu.cn/simplehttps://pypi.tuna.tsinghua.edu.cn/simple/tensorflow-gpu/...

    2024/5/6 16:28:51
  3. Flask之flask_script(命令行脚本)——@manager.command & @manager.opation

    今天我们来简单了解一下flask_script(命令行脚本)一、简单框架首先要在pip内安装flask_script pip install Flask-Script新建一个flask框架,并导入flask_scrpit库中的Manager,先简单建立一个Manager脚本 from flask import Flask # 导入 Flask-Script 中的 Manager from fl…...

    2024/5/6 11:09:23
  4. c# web 大文件上传源代码

    HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh…...

    2024/3/29 14:05:51
  5. react--需要插件

    npm install -save axios(请求数据)npm install antd --save(Ant Design 是React UI的组件库)npm install --save redux谷歌浏览器 应用商店搜索redux dev tools安装测试工具:import { createStore } from redux; import reducer from ./reducer.js;const store = createSt…...

    2024/5/6 17:33:03
  6. PC、单片机、DSP、FPGA、ARM资源对比

    https://blog.csdn.net/zashizhi3299/article/details/83657642...

    2024/5/6 16:13:15
  7. Codeforces Round #614 (Div. 2) D - Aroma's Search (思维,暴力)

    🍅 🍅 🍅 题意:给定x0,y0,ax,ay,bx,by,一堆经验点:(x0,y0),(x1,y1) = (ax* x0+bx,ay*y0+by),起点(xs,ys),时间t,走一步都需要1单位时间,t时间内,从起点出发最多可以吃到多少个经验包 现场队友喊了句经验点很少,然而那时候心态已经崩了〒▽〒,这个题中经验点…...

    2024/5/6 13:53:53
  8. PTA L1-041 寻找250 (10分)

    题目描述:对方不想和你说话,并向你扔了一串数…… 而你必须从这一串数字中找到“250”这个高大上的感人数字。输入格式:输入在一行中给出不知道多少个绝对值不超过1000的整数,其中保证至少存在一个“250”。输出格式:在一行中输出第一次出现的“250”是对方扔过来的第几个…...

    2024/5/6 6:59:41
  9. SpringMVC : SpringMVC注解

    大数据-sparkspark 专栏 ,sprak源码解读九师兄9.90去订阅文章目录1.美图2.概述3.@Controller4.@RestController5.@RequestMapping6.@PathVariable7.@RequestParam8.@RequestBody9.@ResponseBody10.@ModelAttribute10.1 @ModelAttribute添加在方法上10.2 @ModelAttribute添加在…...

    2024/3/29 6:50:27
  10. PHP HTTP请求

    1、GET 请求 请求参数以键值对的方式,附加到url地址上,称为查询字符串,用?号与当前脚本(PHP脚本)分隔 url格式: index.php?name=peter&age=30 受url长度限制, GET方式传递的数据也是有限制的 服务器端脚本使用预定义变量数组 $_GET 进行接收 注:value用三元运算符的意…...

    2024/3/29 6:50:27
  11. 寻找最长公共子串

    目录一、试题二、现实意义三、实现四、结果一、试题给定一个函数,输入两个字符串,找到两者最长公共子串二、现实意义实现文本对比,可在类似git等多人代码合并工具中应用三、实现js//输入findLongestCommonSubstring({str1: "Saying and doing are two different things…...

    2024/3/29 6:50:25
  12. 如何将本地数据上传到hdfs

    将数据传输到服务器 使用xshell将本地数据传到服务器并解压 1.上传: 方法一:连接Xftp上传xftp操作界面直接将要上传的本地文件拖动到对应的服务器位置即可。(要传输的服务器文件夹需要有读写权限) 方法二: 使用rz。在xshell操作界面输入rz会弹出一个选择上传文件的窗口,选…...

    2024/3/29 6:50:24
  13. uni-app >> 一次开发多端覆盖

    什么是uni-appuni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、H5、以及各种小程序等多个平台。官网传送门、官方文档传送门。uni-app在手,做啥都不愁。即使不跨端,uni-app也是更好的小程序开发框架、更好的App跨平台框架、更…...

    2024/3/29 6:50:23
  14. FPGA基础知识,应用,ASIC、ASSP区别(四)

    https://blog.csdn.net/uiojhi/article/details/96928435...

    2024/5/6 5:35:39
  15. navicat设置MySQL字段类型的长度

    原文链接...

    2024/3/29 6:50:22
  16. 力扣编程题分析(66):加一

    题目描述 给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。 最高位数字存放在数组的首位, 数组中每个元素只存储单个数字。 你可以假设除了整数 0 之外,这个整数不会以零开头。思路:我们先分配一个大小为digitsSize+1的数组returnArray,以防止最高位进…...

    2024/4/25 21:35:13
  17. 1003 Emergency

    ** 1003 Emergency 加权最短路径 ** As an emergency rescue team leader of a city, you are given a special map of your country. The map shows several scattered cities connected by some roads. Amount of rescue teams in each city and the length of each road bet…...

    2024/5/5 9:55:57
  18. C. NEKO's Maze Game

    链接:https://codeforces.com/contest/1293/problem/C3R2 as DJ Mashiro - Happiness BreezeIce - DJ Mashiro is dead or aliveNEKO#ΦωΦ has just got a new maze game on her PC!The games main puzzle is a maze, in the forms of a 2n2n rectangle grid. NEKOs task is…...

    2024/3/29 14:05:45
  19. 动态添加元素演示

    一、演示案例<%@ page language="java" contentType="text/html; charset=UTF-8"pageEncoding="UTF-8"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <c:set var="ctx" va…...

    2024/3/29 14:05:44
  20. MySQL8用Navicat11连接

    报认证异常的可以检查认证方式 修改user表里面的认证方式:改为mysql_native_password,如下改变密码的with后面的语句: ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘password’;...

    2024/5/5 12:37:17

最新文章

  1. 嵌入式linux学习第一天

    参考正点原子Linux开发文档。记录下知识点。 Shell 基本操作 前面我们说 Shell 就是“敲命令”&#xff0c;那么既然是命令&#xff0c;那肯定是有格式的&#xff0c;Shell 命令的格式 如下&#xff1a; command -options [argument] command: Shell 命令名称。 options&…...

    2024/5/6 18:21:33
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/5/6 9:38:23
  3. C++ //练习 11.14 扩展你在11.2.1节练习(第378页)中编写的孩子姓到名的map,添加一个pair的vector,保存孩子的名和生日。

    C Primer&#xff08;第5版&#xff09; 练习 11.14 练习 11.14 扩展你在11.2.1节练习&#xff08;第378页&#xff09;中编写的孩子姓到名的map&#xff0c;添加一个pair的vector&#xff0c;保存孩子的名和生日。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#x…...

    2024/5/5 8:38:52
  4. DDIM,多样性与运行效率之间的trade off

    DDPM的重大缺陷在于其在反向扩散的过程中需要逐步从 x t x_t xt​倒推到 x 0 x_0 x0​&#xff0c;因此其推理速度非常缓慢。相反&#xff0c;DDPM的训练过程是很快的&#xff0c;可以直接根据 x 0 x_0 x0​到 x t x_t xt​添加的高斯噪声 ϵ \epsilon ϵ完成一次训练。 为了解…...

    2024/5/5 8:46:20
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/5/4 23:54:56
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/5/4 23:54:56
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/5/4 23:54:56
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/5/6 9:21:00
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/5/4 23:54:56
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/5/4 23:55:05
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/5/4 23:54:56
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/5/4 23:55:16
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/5/4 23:54:56
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/5/6 1:40:42
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/5/4 23:54:56
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/5/4 23:55:17
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/5/4 23:55:06
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/5/4 23:54:56
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/5/4 23:55:06
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/5/5 8:13:33
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/5/4 23:55:16
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/5/4 23:54:58
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/5/4 23:55:01
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/5/4 23:54:56
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57