store_information二張table做join - 請用sql語法查出store_information table語法




如何計算SQL Column中字符的實例 (9)

例如計算在SQL列中的字符(a)的計數實例 - > name是列名''(並且在doblequote的為空,我用nocharecter @'替換一個)')

從TESTING中選擇len(name) - len(替換(name,'a',''))

選擇len('YYNYNYYNNNYYNY') - len(替換('YYNYNYYNNNYYNY','y',''))

我有一個SQL列,是一個100'Y'或'N'字符的字符串。 例如:

YYNYNYYNNNYYNY ...

計算每行中所有'Y'符號的最簡單方法是什麼?


nickf提供的第二個答案非常聰明。 但是,它僅適用於目標子字符串1的字符長度並忽略空格。 具體來說,我的數據中有兩個前導空格,當右側的所有字符都被刪除時,SQL有助於刪除(我不知道這一點)。 這意味著這一點

“ 約翰·史密斯”

使用Nickf的方法生成12,而:

“Joe Bloggs,約翰史密斯”

生成10,和

“Joe Bloggs,John Smith,John Smith”

生成20。

因此,我已經稍微修改了解決方案,以下是適用於我的解決方案:

Select (len(replace(Sales_Reps,' ',''))- len(replace((replace(Sales_Reps, ' ','')),'JohnSmith','')))/9 as Count_JS

我敢肯定,有人可以想到更好的做法!


以下是我在Oracle SQL中用來查看是否有人傳遞格式正確的電話號碼:

WHERE REPLACE(TRANSLATE('555-555-1212','0123456789-','00000000000'),'0','') IS NULL AND
LENGTH(REPLACE(TRANSLATE('555-555-1212','0123456789','0000000000'),'0','')) = 2

第一部分檢查電話號碼是否只有數字,連字符和第二部分檢查電話號碼是否只有兩個連字符。


你也可以試試這個

-- DECLARE field because your table type may be text
DECLARE @mmRxClaim nvarchar(MAX) 

-- Getting Value from table
SELECT top (1) @mmRxClaim = mRxClaim FROM RxClaim WHERE rxclaimid_PK =362

-- Main String Value
SELECT @mmRxClaim AS MainStringValue

-- Count Multiple Character for this number of space will be number of character
SELECT LEN(@mmRxClaim) - LEN(REPLACE(@mmRxClaim, 'GS', ' ')) AS CountMultipleCharacter

-- Count Single Character for this number of space will be one
SELECT LEN(@mmRxClaim) - LEN(REPLACE(@mmRxClaim, 'G', '')) AS CountSingleCharacter

輸出:


嘗試這個。 它決定了否。 單字符出現以及主字符串中的子字符串出現。

SELECT COUNT(DECODE(SUBSTR(UPPER(:main_string),rownum,LENGTH(:search_char)),UPPER(:search_char),1)) search_char_count
FROM DUAL
connect by rownum <= length(:main_string);

如果ms sql

SELECT LEN(REPLACE(myColumn, 'N', '')) FROM ...

最簡單的方法是使用Oracle函數:

SELECT REGEXP_COUNT(COLUMN_NAME,'CONDITION') FROM TABLE_NAME

這段代碼適用於具有布爾值的特定情況:它回答“有多少個非N?”。

SELECT LEN(REPLACE(col, 'N', ''))

如果在不同的情況下,您實際上是在計算任何給定字符串中特定字符(例如'Y')的出現次數,請使用以下命令:

SELECT LEN(col) - LEN(REPLACE(col, 'Y', ''))

DECLARE @StringToFind VARCHAR(100) = "Text To Count"

SELECT (LEN([Field To Search]) - LEN(REPLACE([Field To Search],@StringToFind,'')))/COALESCE(NULLIF(LEN(@StringToFind), 0), 1) --protect division from zero
FROM [Table To Search]




symbols