2009-12-10 4 views
0

Existe-t-il un moyen d'interroger un champ concaténé à l'aide de MS SQL? Par exemple, ce que je veux faire est quelque chose comme:Champ concaténé de requête (utilisant SubSonic)

Select FirstName+' '+LastName as FullName from Attendees where FullName like '%Joe Schmoe%' 

Ce qui précède ne fonctionne pas. Ce que j'ai trouvé des œuvres est:

Select * from Attendee where FirstName+' '+LastName like '%Joe Schmoe%' 

, mais je ne peux pas comprendre comment faire en utilisant un sqlquery subsonique. J'ai un certain nombre de jointures et d'instructions OR ajoutées dynamiquement que je ne veux pas avoir à écrire le sql manuellement.

Une aide/des idées?

Répondre

0

Il semble qu'il est impossible dans SubSonic

0

que diriez-vous:

SELECT FullName 
FROM (SELECT FirstName+' '+LastName as FullName 
     FROM Attendees) X 
WHERE FullName LIKE '%Joe Schmoe%' 
+0

Pouvez-vous me montrer comment faire avec SubSonic? Je n'ai aucun problème à écrire une requête SQL directe qui fonctionne. Je dois juste pouvoir le faire avec SubSonic. – jwynveen

0

Vous pouvez préciser votre condition que dans le cas où une partie de votre requête comme suit:

List<Attendee> cardHolders = new YourDB() 
    .Select 
    .From<Attendee>() 
    .Where(AttendeeTable.FirstNameColumn + " + ' ' + " + AttendeeTable.SurnameColumn + " AS FullName") 
    .Like("%Joe Schmoe%") 
    .ExecuteTypedList<Attendee>(); 
+0

Malheureusement, cela rend sql qui ressemble à "OU Prénom + '' + Nom LIKE @FirstName + '' + Nom14" qui est une déclaration de variable invalide. – jwynveen

+0

Bizarre, fonctionne bien pour moi. Que faire si vous essayez (AttendeeTable.FirstNameColumn + "+ '' +" + AttendeeTable.SurnameColumn + "AS FullName") –

Questions connexes