![]() |
Datenbank: MS SQL Server • Version: 2008 • Zugriff über: SSMS
T-SQL - Schleife
Hallo, kann man diesen Code irgendwie kompakter schreiben?
@C1_ID, etc. sind Parameter vom Typ VARCHAR(50) einer sp.
Code:
DECLARE @Counter INT
SET @Counter = 1 WHILE (@Counter < 5) BEGIN IF (@Counter = 1) BEGIN SET @C_ID = @C1_ID END ELSE IF (@Counter = 2) BEGIN SET @C_ID = @C2_ID END ELSE IF (@Counter = 3) BEGIN SET @C_ID = @C3_ID END ELSE IF (@Counter = 4) BEGIN SET @C_ID = @C4_ID END SET @Counter = @Counter + 1 -- some more code..... END |
AW: T-SQL - Schleife
Geht es darum, ein Verarbeitungs-Feld auszutauschen abhängig vom Counter?
Ich denke nicht, dass es besser geht, außer ein Case Statement, was aber im Prinzip kein Unterschied ist. Eigentlich deutet diese Feld1- 5 Geschichte auf ein unsauberes Datenmodell hin, würde ich mal so ohne weiteren Hintergrund sagen. Die Feld1- Feld5 Infos gehören vielleicht eher in 5 verschiedene Datensätze und würden so problemlos zu bearbeiten sein. |
AW: T-SQL - Schleife
If then else if then else if then else if then else if then else ...
Case? |
AW: T-SQL - Schleife
hallo,
ein Array? mfg |
AW: T-SQL - Schleife
Also ich hätte das jetzt so gemacht:
Code:
MFG Devil
DECLARE @Counter INT
SET @Counter = 1 WHILE (@Counter < 5) BEGIN Set @C_ID = Case @Counter When 1 then @C1_ID else When 2 then @C2_ID else When 3 then @C3_ID else When 4 then @C4_ID end; END SET @Counter = @Counter + 1 |
AW: T-SQL - Schleife
Danke Devil1925, genau so habe ich es mir vorgestellt.
PS: Die else musste ich weglassen, sonst zeigte es Fehler an. Zitat:
|
AW: T-SQL - Schleife
Zitat:
|
AW: T-SQL - Schleife
Sorry wegen den "Else"'s, ich hatte das einfach mal so runter geschrieben und nicht vorher getestet, sonst wäre es vermutlich aufgefallen :D naja, ist ja gut das ich dein Problem Beheben konnte :D
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz