答案:B。
在SQL 语言中,%和_表示的是通配符(通配符指的是一种特殊语句,用来进行模糊查询的,在匹配字符串时,可以使用它来代替一个或多个真正字符,当不知道真正字符或者懒得输入完整名字时,常常使用通配符代替一个或多个真正的字符),其中“%”表示的是0个或多个字符,而“_”表示的是一个字符。
在本题的查找条件中,要求倒数第三个字母为‘W’,所以,字符‘W’后面有两个其他字符,可以表示成“W_ _”,并且还要求至少包含4个字母,而当以“%”开头时,它表示的字符可以不存在,所以,开头应加一个“_”,那么查询条件子句应写成WHERE DNAME LIKE '_ % W _ _'。
所以,本题的答案为B。
需要注意的是,除了以上介绍的两种通配符以外,SQL语言中还有两个通配符,[charlist]表示字符列中的任何单一字符,[^charlist]或者[!charlist]表示不在字符列中的任何一个字符。例如,要求从名为“Persons”的表中选取居住的城市以“A”或“L”或“N”开头的人,可以使用下面的 SELECT 语句:SELECT * FROM Persons WHERE City LIKE '[ALN]%'。要求从名为“Persons”的表中选取居住的城市不以“A”或“L”或“N”开头的人,可以使用下面的 SELECT 语句:SELECT * FROM Persons WHERE City LIKE '[!ALN]%'。