SORU
17 Ocak 2010, Pazar


Nasıl bir dize bir tamsayı döküm ve PostgreSQL ile dökme hata durumunda 0 var mı?

İsim olarak no sütun ile bir tablo var. Veri tamsayı olması gerekiyordu ve sorguda iteger yazın buna ihtiyacım var. Bazı değerler boş dizeler. Aşağıdaki:

SELECT myfield::integer FROM mytable

verimleri 4**

Nasıl bir döküm sorgu ve isim olarak döküm sırasında hata durumunda 0 alabilir miyim?

CEVAP
24 Mayıs 2010, PAZARTESİ


Sadece benzer bir sorun ile kendimi Güreşi yapıyordum, ama bir işlevi yükü istemedi. Aşağıdaki sorgu ile geldi:

SELECT myfield::integer FROM mytable WHERE myfield ~ E'^\\d $';

İsim olmayan tamsayılar herhangi bir isabet elde edemezsin. onun ifade kısayolları ::tam sayı atama. Ayrıca BOŞ değerler (regexp maç vermiyorlar) işler.

Eğer seçme yerine sıfır istiyorsanız, büyük bir deyim olmalı

SELECT CASE WHEN myfield~E'^\\d $' THEN myfield::integer ELSE 0 END FROM mytable;

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • chickenby

    chickenby

    2 HAZİRAN 2008
  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • FD2097

    FD2097

    21 HAZİRAN 2009