Forums Neueste Beiträge
 
Tags Keywords

if in Where Block

26/10/2007 - 09:09 von Hendrik Petzold | Report spam
Ich nutze folgende Abfrage:

SELECT *
FROM PROBE
WHERE PROBE.ukid = 2
and PROBELINE.usidf
and cast(replace(PROBE.wert,',','.') as decimal(38)) > 100
and cast(replace(PROBE.wert,',','.') as decimal(38)) < 400

Das Feld wert ist ein varchar-Feld.
(Inhalt: z.B. 14,12345 126,96537 Abweichung ...)

Diese Abfrage funktioniert, solange ich den Inhalt in decimal wandeln kann,
es kann aber auch "Abweichung" oder "kein Wert" im Feld wert stehen!

mein Gedanke war nun isnumeric wie folgt zu nutzen:

and (if isnumeric(PROBE.wert) = 1 BEGIN cast(replace(PROBE.wert,',','.') as
decimal(38)) > 100 END)
and (if isnumeric(PROBE.wert) = 1 BEGIN cast(replace(PROBE.wert,',','.') as
decimal(38)) < 400 END)

hier komm aber: Falsche Syntax in der Nàhe des if-Schlüsselwortes.

Zusammengefasst:

Ich möchte alle Zeilen, wo der wert innerhalb der vorgegebenen Toleranz liegt
filtern.
Wenn der Inhalt des Feldes wert nicht numerisch ist, dann sollen diese Sàtze
nicht mit gefiltert werde.

Mit freundlichen Grüßen
Hendrik
 

Lesen sie die antworten

#1 Jürgen Volke
26/10/2007 - 09:21 | Warnen spam
Hallo Hendrik
Ich nutze folgende Abfrage:

SELECT *
FROM PROBE
WHERE PROBE.ukid = 2
and PROBELINE.usidf
and cast(replace(PROBE.wert,',','.') as decimal(38)) > 100
and cast(replace(PROBE.wert,',','.') as decimal(38)) < 400

Das Feld wert ist ein varchar-Feld.
(Inhalt: z.B. 14,12345 126,96537 Abweichung ...)

Diese Abfrage funktioniert, solange ich den Inhalt in decimal wandeln
kann,
es kann aber auch "Abweichung" oder "kein Wert" im Feld wert stehen!

mein Gedanke war nun isnumeric wie folgt zu nutzen:

and (if isnumeric(PROBE.wert) = 1 BEGIN cast(replace(PROBE.wert,',','.')
as
decimal(38)) > 100 END)
and (if isnumeric(PROBE.wert) = 1 BEGIN cast(replace(PROBE.wert,',','.')
as
decimal(38)) < 400 END)

hier komm aber: Falsche Syntax in der Nàhe des if-Schlüsselwortes.

Zusammengefasst:



woher hast du dir denn das IF geklaut?
TSQL kennt nur CASE siehe BOL

HTH Jürgen

Ähnliche fragen