尋找一個SQL查詢,該查詢返回特定列中使用的所有特殊字符的計數。假設列中有5行,每行使用兩個特殊字符。我正在查找一些結果爲10的查詢。在SQL中計算特殊字符
我試圖讓特殊字符的行,但如何讓每個特殊字符計數在同一個表中的所有數據庫(我在同一個表和相同的列10個數據庫)
Select * From tablename Where Name like '%[^a-z ,-.''0-9]%'
尋找一個SQL查詢,該查詢返回特定列中使用的所有特殊字符的計數。假設列中有5行,每行使用兩個特殊字符。我正在查找一些結果爲10的查詢。在SQL中計算特殊字符
我試圖讓特殊字符的行,但如何讓每個特殊字符計數在同一個表中的所有數據庫(我在同一個表和相同的列10個數據庫)
Select * From tablename Where Name like '%[^a-z ,-.''0-9]%'
於是我就用一個數字表格(在CTE中虛擬創建),並與您的表格交叉使用,每次查看每個角色1並查看它是否符合您的匹配條件。那麼我算的行數退回來獲得特殊字符數:
設立
--Create Test Table
CREATE TABLE #Test
(
[Name] VARCHAR(50)
)
-- Insert Sample Data
INSERT INTO #Test
VALUES ('dgas-!gfsdfg'), ('d^0jdn'), (',dfsd%gfs_da')
查詢
declare @match varchar(50) = '[^a-z ,-.''0-9]'
;WITH Numbers
AS
(
-- Generate Numbers table
SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS N
FROM
(VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) x(n)
CROSS APPLY
(VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10)) y(n)
)
SELECT COUNT(*)
FROM Numbers
CROSS APPLY #Test
WHERE N < DATALENGTH(Name) + 1 -- Only need to get each character
AND SUBSTRING(Name, N, 1) LIKE @match -- does it match our expression
對於我的數據他的回報4
在上面的測試數據中,我需要把這個dgas-!gfsdfg - 第二行dgas-!gfsdfg!像這剩下的兩行也 – Mallikarjuna
@Mallikarjuna修復你的問題,不要用代碼將它拖出一堆評論。在那裏添加您的示例數據和所需輸出,並刪除您的評論。請。 –
Do y你想要所有行中的特殊字符的數量,還是其中一個字段中具有特殊字符的行數? –
添加示例數據與預期結果 – 2017-05-04 12:24:29
如果名稱是證明_7'日期,那麼我需要兩行,因爲這裏我們有兩個特殊字符。第一行名稱列和特殊字符列是'_',第二行是'''單引號 – Mallikarjuna