2016-09-02 1 views
0

Programmes: base de données SQLite 3.14.1 & Python 2.7Can Python ou SQLite peut-il rechercher et remplacer la sortie à la volée?

J'ai une table appelée transactions. Le champ "nom" a des noms dedans. Je peux utiliser Python pour retourner les lignes de champs sélectionnés dans un fichier texte en fonction des critères spécifiés de tranType tout en ajoutant quelques cordes à la volée:

e = open("export.txt", "w+") 

sqlF1 = """SELECT name, quantity, item, tDate, tranType FROM transactions WHERE tranType LIKE "%sell%" 

""" 

c.execute(sqlF1) 
for row in c.execute(sqlF1): 
    e.write('%s bought QTY %s of %s from %s on date %s\n' % row) 

e.close() 

Ceci est beau et bon. Dans le champ de nom, il y a parfois des prénoms et des noms de famille et parfois c'est juste le prénom. Ce que je veux faire est, tout en obtenant chaque rangée, vérifier le nom - s'il y a un espace dans le champ (comme une première entrée dernière), changez l'espace en un symbole "+" à la volée. Je ne veux pas changer de domaine à l'avance et remplacer tous les espaces par des plus.

Est-ce que cela peut être fait?

Ce que je sais/ne sais pas:

Sur la base de mes connaissances et de l'expérience limitée, je ne peux pas comprendre comment le faire. Je pensais que la seule façon d'y arriver est de vider les noms dans un autre champ et de changer tous les espaces en plus, puis de refaire la partie SQL pour récupérer le champ différent.

Tout conseil est grandement apprécié. Je prends des cours de Python bientôt (et de faire quelques étudier sur SQLite aussi, donc je espère que je ne serai pas en permanence avec StackOverflow inondant trop de questions idiotes.

Merci!

Répondre

1

Avec le replace() function, cela peut être fait à la volée:

SELECT replace(name, ' ', '+'), quantity, item, tDate FROM ... 
+0

aura-t-il changer le champ –

+1

instruction SELECT ne modifie jamais la base de données –

+0

je l'ai testé avant de demander et oui, c'est parfait j'ai beaucoup à apprendre .... Merci encore CL. –