我正在处理一个查询,该查询从一列返回前两个名称。我这样做是通过拾取围绕第一次出现的所有,
内容(即名称的分隔符)来实现的。这是一个有效的版本@ SQL Fiddle。
该表看起来与此类似:
| Director | CriteriaData |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Director1|NameA Surname A, NameB SurnameB, NameC SurnameC |
| Director2|NameA Surname A, NameB SurnameB, NameC SurnameC |
| Director3|NameA Surname A, NameB SurnameB, NameC SurnameC |
正常运行的查询是:
SELECT LEFT(CriteriaData, LEN(CriteriaData) - CHARINDEX(', ', CriteriaData)) AS "2 names"
FROM Table1
WHERE CriteriaData LIKE '%, %'
我正在尝试实现的结果是具有两个结果列。一个叫做Director
,另一个叫上面的查询结果,这叫做2 names
我的失败尝试:测试版本,我试图将原始查询嵌套在一个新查询中。看起来像这样:
SELECT
Director,
(LEFT(CriteriaData, LEN(CriteriaData) - CHARINDEX(', ', CriteriaData))
FROM Table1
WHERE CriteriaData LIKE '%, %')AS "2 names"
FROM Table1
WHERE Director = 'Director3'
在结果表中我想看看
|Director | 2 Names |
||||||||||||||||||||||||||||||||||||||||||||
|Director3| NameA Surname A, NameB SurnameB|
我希望这是有道理的,并且我想要实现的目标是可行的。非常感谢您的阅读。我期待着您的建议。
也许我把问题弄错了,但这是您要找的东西吗?
SELECT
CriteriaData,
LEFT(CriteriaData, LEN(CriteriaData) - CHARINDEX(', ', CriteriaData)) AS "2 names"
FROM Table1
WHERE CriteriaData LIKE '%, %'
AND Director = 'Director3'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句