我正在尝试一个查询,该查询返回列中的前两个名称。我通过拾取第一次出现的 ,
周围的所有内容来做到这一点,这是名称的分隔符。
这是Functioning version @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 个姓名
这是我失败的尝试:Test version ,我尝试将原始查询嵌套在新查询中。它看起来像这样:
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'
关于MySQL 我可以将 SELECT LEFT 嵌套在 SELECT 语句中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20919823/