Je veux convertir la séparées par des virgules nvarchar à la liste int dans sql.How je peux y parvenir?Salut, je veux convertir la séparées par des virgules nvarchar int liste sql
Répondre
J'ai créé une fonction
USE [QA]
GO
/****** Object: UserDefinedFunction [dbo].[NvarcharToIntList] Script Date: 5/29/2017 2:42:50 PM ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER FUNCTION [dbo].[NvarcharToIntList] (@InStr VARCHAR(MAX))
RETURNS @TempTab TABLE
(id int not null)
AS
BEGIN
;-- Ensure input ends with comma
SET @InStr = REPLACE(@InStr + ',', ',,', ',')
DECLARE @SP INT
DECLARE @VALUE VARCHAR(1000)
WHILE PATINDEX('%,%', @INSTR) <> 0
BEGIN
SELECT @SP = PATINDEX('%,%',@INSTR)
SELECT @VALUE = LEFT(@INSTR , @SP - 1)
SELECT @INSTR = STUFF(@INSTR, 1, @SP, '')
INSERT INTO @TempTab(id) VALUES (@VALUE)
END
RETURN
END
@users = '158,159'
alors je l'utilise comme dbo.ResidentAssessment.LastUpdatedBy in(SELECT * FROM dbo.NvarcharToIntList(@users))
A partir de SQL 2016, est une fonction STRING_SPLIT
de la doc
DECLARE @tags NVARCHAR(400) = 'clothing,road,,touring,bike'
SELECT value
FROM STRING_SPLIT(@tags, ',');
J'étais en 2005 sql –
Je vais ajouter l'étiquette correspondante à votre message :) –
C'est fait, j'ai répondu ci-dessus moi-même –
Votre question n'est pas claire. – Wanderer
Marquez les dbms que vous utilisez. Ajoutez quelques exemples de données de table et le résultat attendu (ainsi que du texte formaté). Montrez-nous votre tentative de requête actuelle. – jarlh
Salut, je l'ai fait. –