nvarchar セルの最初の単語を選択しようとしています。たとえば、テキスト フィールドは次のように表示されます。
Marcus Jones Contractors
Pertues Smiths Blacksmiths
各行の最初の世界だけを抽出したいですか?
nvarchar セルの最初の単語を選択しようとしています。たとえば、テキスト フィールドは次のように表示されます。
Marcus Jones Contractors
Pertues Smiths Blacksmiths
各行の最初の世界だけを抽出したいですか?
SELECT CASE CHARINDEX(' ', @Foo, 1)
WHEN 0 THEN @Foo -- empty or single word
ELSE SUBSTRING(@Foo, 1, CHARINDEX(' ', @Foo, 1) - 1) -- multi-word
END
おそらくUDFでこれを使用できます:
CREATE FUNCTION [dbo].[FirstWord] (@value varchar(max))
RETURNS varchar(max)
AS
BEGIN
RETURN CASE CHARINDEX(' ', @value, 1)
WHEN 0 THEN @value
ELSE SUBSTRING(@value, 1, CHARINDEX(' ', @value, 1) - 1) END
END
GO -- test:
SELECT dbo.FirstWord(NULL)
SELECT dbo.FirstWord('')
SELECT dbo.FirstWord('abc')
SELECT dbo.FirstWord('abc def')
SELECT dbo.FirstWord('abc def ghi')
または
DECLARE @test NVARCHAR(255)
SET @test = 'First Second'
SELECT SUBSTRING(@test,1,(CHARINDEX(' ',@test + ' ')-1))
これにより、結果「First」が返されます