2016-04-04 13 views
0

Bitte helfen Sie mir, die SQL-Abfrage zu finden Ich möchte Benutzer auf doppelten Wert zwischen From und To eingeben.Vermeiden Sie überlappende Bereiche über SQL-Abfrage

ich die Abfrage geschrieben, aber es funktioniert nicht, ist hier meine Frage

SELECT intpkPciid 
FROM Table1 
WHERE @intFrom(userinputdata) BETWEEN intFrom AND intTO 

enter image description here

+0

Frage? SQL? Oder möchten Sie nur wissen, wie man eine Zeichenkette formatiert? –

+0

Eigentlich meine Anforderung ist: - Diese Zahlen von und nach sind mit einigen Paket-ID verwandt. Also ich möchte alle Daten in einer anderen Tabellenspalte wie 9-10,5-5-6,90-100,100-200 aktualisieren. SQL-Abfrage möchte ich. Value From und To kann ich aber in Komma Separate Ich möchte pls helfen mir aus. –

+0

Wenn sql dann dieses Tag hinzufügen. –

Antwort

0

Sie alle Ihre Zeilen in kommagetrennte Werte COALESCE mit zusammenführen können:

DECLARE @test varchar(max) 

SELECT @test = COALESCE(@test + ',', '') + CAST(intFrom as varchar) + '-' + CAST(intTo as varchar) 
from Table1 

SELECT @test 

Ihre Frage scheint sich komplett geändert zu haben, aber Sie können Zeileneinträge vermeiden, die sich überschneiden:

SELECT intpkPciid FROM Table1 WHERE @intFrom <= intTO AND @intTo >= intFrom 
+0

Ist Ihnen bewusst, dass 'SELECT @test = @test + ...' unzuverlässig ist? [Weitere Informationen] (http://StackOverflow.com/a/15163136/5070879) – lad2025

+0

Punkt genommen @ lad2025. Es funktioniert jedoch normalerweise, insbesondere wenn der Abfrageplan so einfach ist wie dieser. ein einzelner Clustered-Index-Scan. – strickt01

+0

Ich habe keine 15 Ruf, daher kann ich sie nicht als beantwortet markieren. –

Verwandte Themen