Si j'ai une colonne Adresse1 et Adresse2 dans ma base de données, comment puis-je combiner ces colonnes afin de pouvoir effectuer des opérations dessus uniquement dans mon instruction de sélection, je les laisserai quand même séparées dans la base de données. J'aimerais pouvoir faire ça
WHERE completeaddress LIKE '%searchstring%'
Où adresse complétée est la combinaison de Adresse1 et Adresse2. searchstring serait comme les données recherchées. Donc, s'ils avaient '123 Center St' dans Address1 et 'Apt 3B' dans Address2, comment l'aurais-je sélectionné si la chaîne de recherche était 'Center St 3B'? Est-ce possible avec SQL?
Je pense que c'est ce que vous recherchez -
select Address1+Address2 as CompleteAddress from YourTable
where Address1+Address2 like '%YourSearchString%'
Pour empêcher la création d'un mot composé lorsque nous ajoutons address1 à address2, vous pouvez utiliser ceci -
select Address1 + ' ' + Address2 as CompleteAddress from YourTable
where Address1 + ' ' + Address2 like '%YourSearchString%'
Ainsi, «123 Center St» et «Apt 3B» ne seront pas «123 Center StApt 3B» mais seront «123 Center St Apt 3B».
Dans MySQL, vous pouvez utiliser:
SELECT CONCAT(Address1, " ", Address2)
WHERE SOUNDEX(CONCAT(Address1, " ", Address2)) = SOUNDEX("Center St 3B")
La fonction SOUNDEX
fonctionne de la même manière dans la plupart des systèmes de base de données. Je ne vois pas la syntaxe de MSSQL à la minute, mais ce n’est pas si éloigné de ce qui précède.
Si votre address1 = '123 Center St'
et address2 = 'Apt 3B'
, alors même si vous combinez et faites une LIKE
, vous ne pouvez pas rechercher sur la chaîne de recherche en tant que 'Center St 3B'
. Cependant, si votre chaîne de recherche était 'Center St Apt'
, vous pouvez le faire en utilisant -
WHERE (address1 + ' ' + address2) LIKE '%searchstring%'
SELECT StaffId,(Title+''+FirstName+''+LastName) AS FullName
FROM StaffInformation
Où écrivez-vous entre parenthèses, cela apparaîtra dans une seule colonne. Où voulez-vous un point au milieu de la syntaxe d'écriture titre et prénom ci-dessous,
SELECT StaffId,(Title+'.'+FirstName+''+LastName) AS FullName
FROM StaffInformation
Cette syntaxe fonctionne avec MS SQL Server 2008 R2 Express Edition.