iSuicdeBomber
Grünschnabel
Hallo Leute,
Ich habe in SQL im Bereich Funktionen >>> Rand() <<< eine Frage!
Ich habe einen Random geschrieben im Bereich von 1-16
Hier meine Funktion:
-------------------------------------------------------
SET @bLevel = 17 /* upgrade +18 */
SET @Lower = 1 /* the minimus color*/
SET @Upper = 16 /* the maximus color*/
SET @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
---------------------------------------------------------
Ich möchte jedoch die folgenden Zahlen auslassen: 12,13,14,15
Gibt es da eine Möglichkeit oder muss ich das anders machen?
Meine Komplette Funktion:
------------------------------------------------------------------------------------------------------------------
ALTER PROCEDURE [dbo].[RandomColor]
@dwCharID INT
AS
BEGIN
DECLARE @Random INT
DECLARE @Upper INT
DECLARE @Lower INT
DECLARE @bClass TINYINT
DECLARE @bLevel INT
SET @bLevel = 17 /* upgrade +18 */
SET @Lower = 1 /* the minimus color*/
SET @Upper = 16 /* the maximus color*/
SET @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @bClass = bClass FROM TCHARTABLE WHERE dwCharID = @dwCharID
IF(@bClass <= 2)/* Warrior,Archer,Assassin*/
BEGIN
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 0 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 1 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 2 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 3 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 5 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 6 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 7 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 8 AND dwStorageID = 254
END
IF(@bClass >= 3)/* Priest,Mage,Summoner*/
BEGIN
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 0 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 3 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 5 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 6 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 7 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 8 AND dwStorageID = 254
END
END
------------------------------------------------------------------------------------------------------------------
Ich hoffe auf schnelle Hilfe, und bedanke mich schon im Vorraus !
mfg,
Julian
Ich habe in SQL im Bereich Funktionen >>> Rand() <<< eine Frage!
Ich habe einen Random geschrieben im Bereich von 1-16
Hier meine Funktion:
-------------------------------------------------------
SET @bLevel = 17 /* upgrade +18 */
SET @Lower = 1 /* the minimus color*/
SET @Upper = 16 /* the maximus color*/
SET @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
---------------------------------------------------------
Ich möchte jedoch die folgenden Zahlen auslassen: 12,13,14,15
Gibt es da eine Möglichkeit oder muss ich das anders machen?
Meine Komplette Funktion:
------------------------------------------------------------------------------------------------------------------
ALTER PROCEDURE [dbo].[RandomColor]
@dwCharID INT
AS
BEGIN
DECLARE @Random INT
DECLARE @Upper INT
DECLARE @Lower INT
DECLARE @bClass TINYINT
DECLARE @bLevel INT
SET @bLevel = 17 /* upgrade +18 */
SET @Lower = 1 /* the minimus color*/
SET @Upper = 16 /* the maximus color*/
SET @Random = ROUND(((@Upper - @Lower -1) * RAND() + @Lower), 0)
SELECT @bClass = bClass FROM TCHARTABLE WHERE dwCharID = @dwCharID
IF(@bClass <= 2)/* Warrior,Archer,Assassin*/
BEGIN
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 0 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 1 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 2 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 3 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 5 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 6 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 7 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 8 AND dwStorageID = 254
END
IF(@bClass >= 3)/* Priest,Mage,Summoner*/
BEGIN
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 0 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 3 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 5 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 6 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 7 AND dwStorageID = 254
UPDATE TITEMTABLE SET bLevel = @bLevel, bGradeEffect = @Random WHERE dwOwnerID = @dwCharID AND bItemID = 8 AND dwStorageID = 254
END
END
------------------------------------------------------------------------------------------------------------------
Ich hoffe auf schnelle Hilfe, und bedanke mich schon im Vorraus !
mfg,
Julian