2017-08-24 93 views
-2

我有柱雇员和employeename查询找到所有字符出现在字符串

ID Name 
1 Empee1 
2 Emp1 

我需要O/P为

Name 
E - 3 m - 1 p - 1 1 - 1 
E - 1 m - 1 1 - 1 
+1

这不是一个简单的SQL操作。而且,你的输出格式不清晰。这是每行一列吗?每计数一个单独的列? –

+1

要问一个关于主题的问题,请阅读[我可以问什么主题](http://stackoverflow.com/help/on-topic) 和[需要避免什么话题](https://stackoverflow.com/帮助/不要问) 和[如何问一个好问题](http://stackoverflow.com/help/how-to-ask) 和[完美的问题](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question /) 以及如何创建[最小,完整和可验证的示例](http://stackoverflow.com/help/mcve) 和[take tour] (http://stackoverflow.com/tour) **我们非常乐意帮助您修复您的代码,但我们不会为您编写代码** – RiggsFolly

+0

@RiggsFolly如果您愿意帮助您通过评论 – Nick

回答

2

我不知道有一个“好”方式来做到这一点,但下面会给你你的结果:

SELECT 
    CASE WHEN [NAME] LIKE '%A%' THEN 'A - ' + CONVERT (VARCHAR, LEN([NAME]) - LEN(REPLACE ([NAME], 'A', ''))) 
    ELSE '' END, 
    CASE WHEN [NAME] LIKE '%B%' THEN ' B - ' + CONVERT (VARCHAR, LEN([NAME]) - LEN(REPLACE ([NAME], 'B', ''))) 
    ELSE '' END, 
    ... 
    ... 
    CASE WHEN [NAME] LIKE '%Z%' THEN ' Z - ' + CONVERT (VARCHAR, LEN([NAME]) - LEN(REPLACE ([NAME], 'Z', ''))) 
    ELSE '' END, 
    CASE WHEN [NAME] LIKE '%0%' THEN ' 0 - ' + CONVERT (VARCHAR, LEN([NAME]) - LEN(REPLACE ([NAME], '0', ''))) 
    ELSE '' END, 
    ... 
    ... 
    CASE WHEN [NAME] LIKE '%9%' THEN ' 9 - ' + CONVERT (VARCHAR, LEN([NAME]) - LEN(REPLACE ([NAME], '9', ''))) 
    ELSE '' END 
FORM [Your TABLE name]; 
+0

Tanx @Gez Jones – Nick