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

  • MofoHifi Records

    MofoHifi Rec

    15 HAZİRAN 2006
  • thelonelyisland

    thelonelyisl

    23 Aralık 2005
  • xiaoyu85

    xiaoyu85

    20 ŞUBAT 2010