2017-05-29 2 views
-4

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

+0

Votre question n'est pas claire. – Wanderer

+0

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

+0

Salut, je l'ai fait. –

Répondre

0

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))

0

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, ','); 
+0

J'étais en 2005 sql –

+0

Je vais ajouter l'étiquette correspondante à votre message :) –

+0

C'est fait, j'ai répondu ci-dessus moi-même –