SELECT folder_name , folder_id FROM subqry where super_id != 1;其中folder_name 包含有空字符串,如何取头到空字符串之间的数据
时间: 2024-11-09 12:25:11 浏览: 11
ADB folder.zip_abd folder_cabin8u5
在SQL查询中,如果`folder_name`包含空字符串,并且你想获取从开头到第一个空字符串位置的所有数据,你需要先处理`folder_name`以移除空字符串,然后再进行筛选。由于SQL中没有内置的方法可以直接找到第一个空字符的位置,你可以先判断`folder_name`是否为空,或者使用正则表达式替换掉所有的空字符串。这里是一个示例,假设你使用的是SQL Server:
```sql
DECLARE @cleaned_folder_name VARCHAR(MAX);
SET @cleaned_folder_name = REPLACE(folder_name, ' ', '');
SELECT folder_name, folder_id
FROM (
SELECT folder_name, folder_id,
CASE
WHEN @cleaned_folder_name = '' THEN NULL
ELSE @cleaned_folder_name
END AS processed_folder_name
FROM subqry
WHERE super_id != 1
) AS subquery_with_processed_name
WHERE processed_folder_name IS NOT NULL;
```
这里先创建了一个新的变量`@cleaned_folder_name`,然后替换所有空格。在内部查询中,我们用`CASE`语句判断清理后的名称是否为空,如果不为空,则保留;如果为空,则在外部查询中过滤掉那些结果。
阅读全文