![](/img/trans.png)
[英]Count different values in single column and show in their respective column using Access
[英]Classifying the values present in a single column using SQL into their respective datatypes?
我一直試圖將單列中存在的set值(就像上面一樣)分類為數據類型。 問題是我正在使用Aster SQL環境(功能的可用性和整個環境非常有限)。 另一個問題是,該列中有很多垃圾值,許多符號,字符等,這使得很難對問題進行硬編碼。 結構類似於:
FeatureValue
123
24
15.6
17:15
abc
12/18/2014
17/222222
abc1200
001001oo
positve+
+1
我希望解決方案是SQL查詢。 最終結果應類似於:
FeatureValue Type
123 Numeric
24 Numeric
15.6 Numeric
17:15 String (?time)
abc String
12/18/2014 Date
17/222222 String
abc1200 String
001001oo String
positve+ String
+1 String
我編寫了一些代碼,但是這種解決方案不是很可靠。 我所做的是:
case
when upper(trim(feature_value)) not like '%A%' and
upper(trim(feature_value)) not like '%B%' and
upper(trim(feature_value)) not like '%C%' and
upper(trim(feature_value)) not like '%D%' and
upper(trim(feature_value)) not like '%E%' and
upper(trim(feature_value)) not like '%F%' and
upper(trim(feature_value)) not like '%G%' and
upper(trim(feature_value)) not like '%H%' and
upper(trim(feature_value)) not like '%I%' and
upper(trim(feature_value)) not like '%J%' and
upper(trim(feature_value)) not like '%K%' and
upper(trim(feature_value)) not like '%L%' and
upper(trim(feature_value)) not like '%M%' and
upper(trim(feature_value)) not like '%N%' and
upper(trim(feature_value)) not like '%O%' and
upper(trim(feature_value)) not like '%P%' and
upper(trim(feature_value)) not like '%Q%' and
upper(trim(feature_value)) not like '%R%' and
upper(trim(feature_value)) not like '%S%' and
upper(trim(feature_value)) not like '%T%' and
upper(trim(feature_value)) not like '%U%' and
upper(trim(feature_value)) not like '%V%' and
upper(trim(feature_value)) not like '%W%' and
upper(trim(feature_value)) not like '%X%' and
upper(trim(feature_value)) not like '%Y%' and
upper(trim(feature_value)) not like '%Z%' and
upper(trim(feature_value)) <>'' and
upper(trim(feature_value)) not like '%+%' and
upper(trim(feature_value)) is not null and
--upper(trim(feature_value))<>'-' and
upper(trim(feature_value))<>'NULL' and
upper(trim(feature_value)) not like '%/%' and
upper(trim(feature_value)) not like '%-%' and
upper(trim(feature_value)) not like '%:%' and
feature_value is not null
then 'NUMERIC'
else 'STRING'
end as value_type
您可以嘗試在LIKE語句中使用字符范圍來控制CASE噩夢:
CASE WHEN upper(trim(feature_value)) NOT LIKE '%[A-Z/-+:]%'
AND upper(trim(feature_value)) NOT LIKE ''
AND upper(trim(feature_value)) IS NOT NULL
THEN 'NUMERIC'
ELSE 'STRING'
END AS value_type
根據需要修改/擴展。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.